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