diff --git a/code/datums/gamemode/powers/vampire.dm b/code/datums/gamemode/powers/vampire.dm index a68a169f284..30bdb73d7ce 100644 --- a/code/datums/gamemode/powers/vampire.dm +++ b/code/datums/gamemode/powers/vampire.dm @@ -82,7 +82,7 @@ /* Tier 5 (/vg/) */ /datum/power/vampire/mature cost = 400 - granttext = "You have reached physical maturity. You are more vulnerable to holy things, and your vision has been improved greatly." + granttext = "You have reached physical maturity. You are more vulnerable to holy things, and your vision has been improved greatly. You drain blood from people twice as fast and you no longer need to take their masks off." store_in_memory = TRUE /* Tier 6 (/vg/) */ diff --git a/code/datums/gamemode/role/vampire_role.dm b/code/datums/gamemode/role/vampire_role.dm index a388d65f88b..a175c2c77b9 100644 --- a/code/datums/gamemode/role/vampire_role.dm +++ b/code/datums/gamemode/role/vampire_role.dm @@ -154,8 +154,9 @@ return FALSE if(H.check_body_part_coverage(MOUTH)) - to_chat(M, "Remove their mask!") - return FALSE + if(!locate(/datum/power/vampire/mature) in current_powers) + to_chat(M, "Remove their mask!") + return FALSE if(vampire_teeth?.amount == 0) to_chat(M, "You cannot suck blood with no teeth!") @@ -163,12 +164,8 @@ if(ishuman(M)) var/mob/living/carbon/human/vamp_H = M - if(H.check_body_part_coverage(MOUTH)) - if(vamp_H.species.breath_type == GAS_OXYGEN) - to_chat(H, "Remove your mask!") - return FALSE - else - to_chat(H, "With practiced ease, you shift aside your mask for each gulp of blood.") + if(vamp_H.check_body_part_coverage(MOUTH)) + to_chat(H, "With practiced ease, you shift aside your mask for each gulp of blood.") return TRUE @@ -210,8 +207,9 @@ break if (!(targetref in feeders)) feeders[targetref] = 0 + var/mature = locate(/datum/power/vampire/mature) in current_powers if(target.stat < DEAD) //alive - blood = min(20, target.vessel.get_reagent_amount(BLOOD)) // if they have less than 20 blood, give them the remnant else they get 20 blood + blood = min(mature ? 40 : 20, target.vessel.get_reagent_amount(BLOOD)) // if they have less than 20 blood, give them the remnant else they get 20 blood if (feeders[targetref] < MAX_BLOOD_PER_TARGET) blood_total += blood else @@ -221,7 +219,7 @@ var/datum/organ/external/head/head_organ = target.get_organ(LIMB_HEAD) head_organ.add_autopsy_data("sharp teeth", 1) else - blood = min(10, target.vessel.get_reagent_amount(BLOOD)) // The dead only give 10 blood + blood = min(mature ? 20 : 10, target.vessel.get_reagent_amount(BLOOD)) // The dead only give 10 blood if (feeders[targetref] < MAX_BLOOD_PER_TARGET) blood_total += blood else