diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index 56f22430158..086d8a0968f 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -998,6 +998,33 @@ manipulate_organs(C) href_list["datumrefresh"] = href_list["editorgans"] + else if(href_list["givemartialart"]) + if(!check_rights(NONE)) + return + + var/mob/living/carbon/C = locate(href_list["givemartialart"]) in GLOB.carbon_list + if(!istype(C)) + to_chat(usr, "This can only be done to instances of type /mob/living/carbon") + return + + var/list/artpaths = subtypesof(/datum/martial_art) + var/list/artnames = list() + for(var/i in artpaths) + var/datum/martial_art/M = i + artnames[initial(M.name)] = M + + var/result = input(usr, "Choose the martial art to teach","JUDO CHOP") as null|anything in artnames + if(!usr) + return + if(QDELETED(C)) + to_chat(usr, "Mob doesn't exist anymore") + return + + if(result) + var/chosenart = artnames[result] + var/datum/martial_art/MA = new chosenart + MA.teach(C) + else if(href_list["givetrauma"]) if(!check_rights(NONE)) return diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 857dede59c5..e91830380a0 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -864,6 +864,7 @@ .["Modify bodypart"] = "?_src_=vars;[HrefToken()];editbodypart=[REF(src)]" .["Modify organs"] = "?_src_=vars;[HrefToken()];editorgans=[REF(src)]" .["Hallucinate"] = "?_src_=vars;[HrefToken()];hallucinate=[REF(src)]" + .["Give martial arts"] = "?_src_=vars;[HrefToken()];givemartialart=[REF(src)]" .["Give brain trauma"] = "?_src_=vars;[HrefToken()];givetrauma=[REF(src)]" .["Cure brain traumas"] = "?_src_=vars;[HrefToken()];curetraumas=[REF(src)]"