here we go again (#2456)

This commit is contained in:
LetterJay
2017-08-24 21:24:25 -05:00
committed by kevinz000
parent c7ed043fd5
commit 188193eb61
1107 changed files with 25420 additions and 25417 deletions
+39 -39
View File
@@ -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))
+1 -1
View File
@@ -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()
. = ..()
+5 -5
View File
@@ -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>")
+12 -12
View File
@@ -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>")
+6 -6
View File
@@ -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
+27 -27
View File
@@ -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()
. = ..()
+7 -7
View File
@@ -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>")
+15 -15
View File
@@ -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)
+2 -2
View File
@@ -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)
+14 -14
View File
@@ -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
+1 -1
View File
@@ -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++
+57 -57
View File
@@ -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)
+11 -11
View File
@@ -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
+8 -8
View File
@@ -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
+2 -2
View File
@@ -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
+10 -10
View File
@@ -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)
+56 -56
View File
@@ -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>" )
+10 -10
View File
@@ -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)