diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index a60faeb830..2234e0a540 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -13,6 +13,8 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E var/isabsorbing = 0 var/geneticpoints = 5 var/max_geneticpoints = 5 + var/readapts = 1 + var/max_readapts = 2 var/list/purchased_powers = list() var/mimicing = "" var/cloaked = 0 @@ -60,6 +62,7 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E if(!mind.changeling) mind.changeling = new /datum/changeling(gender) verbs += /datum/changeling/proc/EvolutionMenu + verbs += /mob/proc/changeling_respec add_language("Changeling") var/lesser_form = !ishuman(src) diff --git a/code/game/gamemodes/changeling/powers/absorb.dm b/code/game/gamemodes/changeling/powers/absorb.dm index 10cb5f9fbb..396e6faf34 100644 --- a/code/game/gamemodes/changeling/powers/absorb.dm +++ b/code/game/gamemodes/changeling/powers/absorb.dm @@ -72,7 +72,12 @@ if(src.nutrition < 400) src.nutrition = min((src.nutrition + T.nutrition), 400) changeling.chem_charges += 10 - src.verbs += /mob/proc/changeling_respec + if(changeling.readapts <= 0) + changeling.readapts = 0 //SANITYYYYYY + changeling.readapts++ + if(changeling.readapts > changeling.max_readapts) + changeling.readapts = changeling.max_readapts + src << "We can now re-adapt, reverting our evolution so that we may start anew, if needed." var/datum/absorbed_dna/newDNA = new(T.real_name, T.dna, T.species.name, T.languages, T.identifying_gender, T.flavor_texts) diff --git a/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm b/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm index 3068f1eee5..c173ba55ac 100644 --- a/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm +++ b/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm @@ -24,7 +24,7 @@ if(held_item == null) if(src.mind.changeling.recursive_enhancement) - if(changeling_generic_weapon(/obj/item/weapon/electric_hand/efficent)) + if(changeling_generic_weapon(/obj/item/weapon/electric_hand/efficent,0)) src << "We will shock others more efficently." return 1 else diff --git a/code/game/gamemodes/changeling/powers/respec.dm b/code/game/gamemodes/changeling/powers/respec.dm index 7910ceaf7c..c59109fef0 100644 --- a/code/game/gamemodes/changeling/powers/respec.dm +++ b/code/game/gamemodes/changeling/powers/respec.dm @@ -6,9 +6,14 @@ var/datum/changeling/changeling = changeling_power(0,0,100) if(!changeling) return + if(src.mind.changeling.readapts <= 0) + to_chat(src, "We must first absorb another compatable creature!") + src.mind.changeling.readapts = 0 + return src.remove_changeling_powers() //First, remove the verbs. var/datum/changeling/ling_datum = src.mind.changeling + ling_datum.readapts-- ling_datum.purchased_powers = list() //Then wipe all the powers we bought. ling_datum.geneticpoints = ling_datum.max_geneticpoints //Now refund our points to the maximum. ling_datum.chem_recharge_rate = 0.5 //If glands were bought, revert that upgrade. @@ -26,4 +31,4 @@ ling_datum.purchased_powers_history.Add("Re-adapt (Reset to [ling_datum.max_geneticpoints])") //Now to lose the verb, so no unlimited resets. - src.verbs -= /mob/proc/changeling_respec \ No newline at end of file + diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 1c4f4e841e..5bdea52665 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -88,6 +88,7 @@ if(mind.changeling) stat("Chemical Storage", mind.changeling.chem_charges) stat("Genetic Damage Time", mind.changeling.geneticdamage) + stat("Re-Adaptations", "[mind.changeling.readapts]/[mind.changeling.max_readapts]") /mob/living/carbon/human/ex_act(severity) if(!blinded) diff --git a/html/changelogs/LorenLuke - ChangelingRespec.yml b/html/changelogs/LorenLuke - ChangelingRespec.yml new file mode 100644 index 0000000000..d173d3d580 --- /dev/null +++ b/html/changelogs/LorenLuke - ChangelingRespec.yml @@ -0,0 +1,37 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: LorenLuke + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - tweak: "Changelings can bank up to a maximum of 3 respecs at one time." + - tweak: "Changelings begin with 2 respecs."