Skip to content

Commit

Permalink
Revert "Revert "Dissection tweaks: I'm tired of the corpse pile (ship…
Browse files Browse the repository at this point in the history
…test-ss13#2722)""

This reverts commit ee31f72.
  • Loading branch information
trazodont committed Sep 18, 2024
1 parent ee31f72 commit 8065bad
Showing 1 changed file with 28 additions and 22 deletions.
50 changes: 28 additions & 22 deletions code/modules/surgery/experimental_dissection.dm
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#define BASE_HUMAN_REWARD 500
#define MAX_DISSECTION_REWARD 2000
#define EXPDIS_FAIL_MSG "<span class='notice'>You dissect [target], but do not find anything particularly interesting.</span>"
#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
Expand All @@ -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 = 1
var/value_multiplier = 0.25

/datum/surgery/advanced/experimental_dissection/can_start(mob/user, mob/living/target)
. = ..()
Expand Down Expand Up @@ -45,31 +45,37 @@
user.visible_message("<span class='notice'>[user] starts dissecting [target].</span>", "<span class='notice'>You start dissecting [target].</span>")

/datum/surgery_step/dissection/proc/check_value(mob/living/target, datum/surgery/advanced/experimental_dissection/ED)
var/cost = BASE_HUMAN_REWARD
var/cost = 0
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 = (BASE_HUMAN_REWARD*38)
cost = (MAX_DISSECTION_REWARD*38)
else if(isalienadult(target))
cost = (BASE_HUMAN_REWARD*30)
else if(ismonkey(target))
cost = (BASE_HUMAN_REWARD*0.5)
cost = (MAX_DISSECTION_REWARD*30)
else if(isalien(target))
cost = (MAX_DISSECTION_REWARD*14)
else if(ismegafauna(target))
cost = (MAX_DISSECTION_REWARD*30)
else if(ishuman(target))
var/mob/living/carbon/human/H = target
if(H?.dna?.species)
if(isabductor(H))
cost = (BASE_HUMAN_REWARD*24)
cost = (MAX_DISSECTION_REWARD*24)
else if(iszombie(H) || isshadow(H) || isandroid(H))
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)


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

//now we do math for surgeries already done (no double dipping!).
for(var/i in typesof(/datum/surgery/advanced/experimental_dissection))
Expand All @@ -96,7 +102,7 @@
target.apply_damage(80, BRUTE, L)
ADD_TRAIT(target, TRAIT_DISSECTED, "[surgery.name]")
repeatable = FALSE
experience_given = max(points_earned/(BASE_HUMAN_REWARD/MEDICAL_SKILL_MEDIUM),1)
experience_given = max(points_earned/(MAX_DISSECTION_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)
Expand All @@ -114,24 +120,24 @@

/datum/surgery/advanced/experimental_dissection/adv
name = "Thorough Dissection"
value_multiplier = 2
value_multiplier = 0.5
replaced_by = /datum/surgery/advanced/experimental_dissection/exp
requires_tech = TRUE

/datum/surgery/advanced/experimental_dissection/exp
name = "Experimental Dissection"
value_multiplier = 4
value_multiplier = 1
replaced_by = /datum/surgery/advanced/experimental_dissection/alien
requires_tech = TRUE

/datum/surgery/advanced/experimental_dissection/alien
name = "Extraterrestrial Dissection"
value_multiplier = 8
value_multiplier = 2
requires_tech = TRUE
replaced_by = null


#undef BASE_HUMAN_REWARD
#undef MAX_DISSECTION_REWARD
#undef EXPDIS_FAIL_MSG
#undef PUBLIC_TECHWEB_GAIN
#undef PRIVATE_TECHWEB_GAIN

0 comments on commit 8065bad

Please sign in to comment.