mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 00:29:02 +01:00
Mining Skill is Now Exclusive To Dedicated Mining Tools, Not Weapons That Double As Mining Tools. (#48237)
* gimme ur rune pick * changes XP scaling * beep beep * works on my machine, 150 hours * fixes borgs bypassing xp restriction when using KA
This commit is contained in:
@@ -5,16 +5,16 @@
|
||||
/datum/skill/mining/get_skill_speed_modifier(level)
|
||||
switch(level)
|
||||
if(SKILL_LEVEL_NONE)
|
||||
return 1.3
|
||||
if(SKILL_LEVEL_NOVICE)
|
||||
return 1.2
|
||||
if(SKILL_LEVEL_APPRENTICE)
|
||||
return 1.1
|
||||
if(SKILL_LEVEL_JOURNEYMAN)
|
||||
return 1
|
||||
if(SKILL_LEVEL_EXPERT)
|
||||
if(SKILL_LEVEL_NOVICE)
|
||||
return 0.95
|
||||
if(SKILL_LEVEL_APPRENTICE)
|
||||
return 0.9
|
||||
if(SKILL_LEVEL_MASTER)
|
||||
if(SKILL_LEVEL_JOURNEYMAN)
|
||||
return 0.85
|
||||
if(SKILL_LEVEL_EXPERT)
|
||||
return 0.75
|
||||
if(SKILL_LEVEL_MASTER)
|
||||
return 0.65
|
||||
if(SKILL_LEVEL_LEGENDARY)
|
||||
return 0.5
|
||||
|
||||
@@ -64,12 +64,12 @@
|
||||
if(I.use_tool(src, user, 40, volume=50))
|
||||
if(ismineralturf(src))
|
||||
to_chat(user, "<span class='notice'>You finish cutting into the rock.</span>")
|
||||
gets_drilled(user)
|
||||
gets_drilled(user, TRUE)
|
||||
SSblackbox.record_feedback("tally", "pick_used_mining", 1, I.type)
|
||||
else
|
||||
return attack_hand(user)
|
||||
|
||||
/turf/closed/mineral/proc/gets_drilled(user, give_exp = TRUE)
|
||||
/turf/closed/mineral/proc/gets_drilled(user, give_exp = FALSE)
|
||||
if (mineralType && (mineralAmt > 0))
|
||||
new mineralType(src, mineralAmt)
|
||||
SSblackbox.record_feedback("tally", "ore_mined", mineralAmt, mineralType)
|
||||
@@ -126,12 +126,12 @@
|
||||
switch(severity)
|
||||
if(3)
|
||||
if (prob(75))
|
||||
gets_drilled(null, 1)
|
||||
gets_drilled(null, FALSE)
|
||||
if(2)
|
||||
if (prob(90))
|
||||
gets_drilled(null, 1)
|
||||
gets_drilled(null, FALSE)
|
||||
if(1)
|
||||
gets_drilled(null, 1)
|
||||
gets_drilled(null, FALSE)
|
||||
return
|
||||
|
||||
/turf/closed/mineral/Spread(turf/T)
|
||||
@@ -545,13 +545,18 @@
|
||||
to_chat(usr, "<span class='warning'>Only a more advanced species could break a rock such as this one!</span>")
|
||||
return FALSE
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.mind.get_skill_level(/datum/skill/mining) >= SKILL_LEVEL_LEGENDARY)
|
||||
if(H.mind.get_skill_level(/datum/skill/mining) >= SKILL_LEVEL_MASTER)
|
||||
. = ..()
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>The rock seems to be too strong to destroy. Maybe I can break it once I become a master miner.</span>")
|
||||
|
||||
|
||||
/turf/closed/mineral/strong/gets_drilled(user)
|
||||
/turf/closed/mineral/strong/gets_drilled(mob/user)
|
||||
if(!ishuman(user))
|
||||
return // see attackby
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(!(H.mind.get_skill_level(/datum/skill/mining) >= SKILL_LEVEL_MASTER))
|
||||
return
|
||||
drop_ores()
|
||||
var/flags = NONE
|
||||
if(defer_change) // TODO: make the defer change var a var for any changeturf flag
|
||||
@@ -559,6 +564,7 @@
|
||||
ScrapeAway(flags=flags)
|
||||
addtimer(CALLBACK(src, .proc/AfterChange), 1, TIMER_UNIQUE)
|
||||
playsound(src, 'sound/effects/break_stone.ogg', 50, TRUE) //beautiful destruction
|
||||
H.mind.adjust_experience(/datum/skill/mining, 100) //yay!
|
||||
|
||||
/turf/closed/mineral/strong/proc/drop_ores()
|
||||
if(prob(10))
|
||||
|
||||
@@ -134,14 +134,7 @@
|
||||
carried = 1
|
||||
|
||||
deltimer(recharge_timerid)
|
||||
|
||||
var/skill_modifier = 1
|
||||
if(ishuman(holder))
|
||||
var/mob/living/carbon/human/H = holder
|
||||
if(H.mind)
|
||||
skill_modifier = H.mind.get_skill_speed_modifier(/datum/skill/mining)
|
||||
|
||||
recharge_timerid = addtimer(CALLBACK(src, .proc/reload), recharge_time * carried * skill_modifier, TIMER_STOPPABLE)
|
||||
recharge_timerid = addtimer(CALLBACK(src, .proc/reload), recharge_time * carried, TIMER_STOPPABLE)
|
||||
|
||||
/obj/item/gun/energy/kinetic_accelerator/emp_act(severity)
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user