diff --git a/code/modules/surgery/experimental_dissection.dm b/code/modules/surgery/experimental_dissection.dm
index 70dbac246e4e..48f423a12512 100644
--- a/code/modules/surgery/experimental_dissection.dm
+++ b/code/modules/surgery/experimental_dissection.dm
@@ -1,4 +1,4 @@
-#define MAX_DISSECTION_REWARD 2000
+#define BASE_HUMAN_REWARD 500
#define EXPDIS_FAIL_MSG "You dissect [target], but do not find anything particularly interesting."
#define PUBLIC_TECHWEB_GAIN 0.6 //how many research points go directly into the main pool
#define PRIVATE_TECHWEB_GAIN (1 - PUBLIC_TECHWEB_GAIN) //how many research points go directly into the main pool
@@ -16,7 +16,7 @@
target_mobtypes = list(/mob/living) //Feel free to dissect devils but they're magic.
replaced_by = /datum/surgery/advanced/experimental_dissection/adv
requires_tech = FALSE
- var/value_multiplier = 0.25
+ var/value_multiplier = 1
/datum/surgery/advanced/experimental_dissection/can_start(mob/user, mob/living/target)
. = ..()
@@ -45,37 +45,31 @@
user.visible_message("[user] starts dissecting [target].", "You start dissecting [target].")
/datum/surgery_step/dissection/proc/check_value(mob/living/target, datum/surgery/advanced/experimental_dissection/ED)
- var/cost = 0
+ var/cost = BASE_HUMAN_REWARD
var/multi_surgery_adjust = 0
//determine bonus applied
- var/static/list/mob_mult_list = list(/mob/living/simple_animal/hostile/asteroid/elite = 6,
- /mob/living/simple_animal/hostile/asteroid/goliath/beast/ancient/crystal = 5,
- /mob/living/simple_animal/hostile/jungle/mega_arachnid = 4,
- /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/forgotten = 3,
- /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/icewing = 2,
- /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/magmawing = 2,
- /mob/living/simple_animal/hostile/asteroid/goliath/beast/ancient = 2
- )
if(isalienqueen(target) || isalienroyal(target))
- cost = (MAX_DISSECTION_REWARD*38)
+ cost = (BASE_HUMAN_REWARD*38)
else if(isalienadult(target))
- cost = (MAX_DISSECTION_REWARD*30)
- else if(isalien(target))
- cost = (MAX_DISSECTION_REWARD*14)
- else if(ismegafauna(target))
- cost = (MAX_DISSECTION_REWARD*30)
+ cost = (BASE_HUMAN_REWARD*30)
+ else if(ismonkey(target))
+ cost = (BASE_HUMAN_REWARD*0.5)
else if(ishuman(target))
var/mob/living/carbon/human/H = target
if(H?.dna?.species)
if(isabductor(H))
- cost = (MAX_DISSECTION_REWARD*24)
+ cost = (BASE_HUMAN_REWARD*24)
else if(iszombie(H) || isshadow(H) || isandroid(H))
- cost = (MAX_DISSECTION_REWARD*20)
- else for(var/type in mob_mult_list) // THIS. ELSE IF(). ENDS. HERE.
- if(istype(target, type))
- cost = (MAX_DISSECTION_REWARD*mob_mult_list[type])
- break
+ cost = (BASE_HUMAN_REWARD*20)
+ else if(isjellyperson(H) || ispodperson(H) || isalien(H))
+ cost = (BASE_HUMAN_REWARD*14)
+ else if(isskeleton(H))
+ cost = (BASE_HUMAN_REWARD * 0.5)
+ else
+ cost = (BASE_HUMAN_REWARD * 0.5)
+
+
//now we do math for surgeries already done (no double dipping!).
for(var/i in typesof(/datum/surgery/advanced/experimental_dissection))
@@ -102,7 +96,7 @@
target.apply_damage(80, BRUTE, L)
ADD_TRAIT(target, TRAIT_DISSECTED, "[surgery.name]")
repeatable = FALSE
- experience_given = max(points_earned/(MAX_DISSECTION_REWARD/MEDICAL_SKILL_MEDIUM),1)
+ experience_given = max(points_earned/(BASE_HUMAN_REWARD/MEDICAL_SKILL_MEDIUM),1)
return ..()
/datum/surgery_step/dissection/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
@@ -120,24 +114,24 @@
/datum/surgery/advanced/experimental_dissection/adv
name = "Thorough Dissection"
- value_multiplier = 0.5
+ value_multiplier = 2
replaced_by = /datum/surgery/advanced/experimental_dissection/exp
requires_tech = TRUE
/datum/surgery/advanced/experimental_dissection/exp
name = "Experimental Dissection"
- value_multiplier = 1
+ value_multiplier = 4
replaced_by = /datum/surgery/advanced/experimental_dissection/alien
requires_tech = TRUE
/datum/surgery/advanced/experimental_dissection/alien
name = "Extraterrestrial Dissection"
- value_multiplier = 2
+ value_multiplier = 8
requires_tech = TRUE
replaced_by = null
-#undef MAX_DISSECTION_REWARD
+#undef BASE_HUMAN_REWARD
#undef EXPDIS_FAIL_MSG
#undef PUBLIC_TECHWEB_GAIN
#undef PRIVATE_TECHWEB_GAIN