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:
moo
2019-12-22 08:36:46 +01:00
committed by skoglol
parent 2113488607
commit f92eb16161
3 changed files with 22 additions and 23 deletions
+8 -8
View File
@@ -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
+13 -7
View File
@@ -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