From e064bd15bd6ded160de9ec69f82710e7e1259d12 Mon Sep 17 00:00:00 2001 From: "giacomand@gmail.com" Date: Sun, 30 Sep 2012 13:53:49 +0000 Subject: [PATCH] -Tweaks to purchasing free changeling powers when making a changeling. -Add an "if(usr != src) return" check in the AI's topic. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4778 316c924e-a436-60f5-8080-3fe189b3f50e --- .../gamemodes/changeling/changeling_powers.dm | 16 +++++++++------- .../gamemodes/changeling/modularchangling.dm | 4 ++-- code/modules/mob/living/silicon/ai/ai.dm | 2 ++ 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index 878714e381c..c789fc04f05 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -6,12 +6,6 @@ var/lesser_form = !ishuman(src) - for(var/datum/power/changeling/P in mind.changeling.purchasedpowers) - if(P.isVerb) - if(lesser_form && !P.allowduringlesserform) continue - if(!(P in src.verbs)) - src.verbs += P.verbpath - if(!powerinstances.len) for(var/P in powers) powerinstances += new P() @@ -20,7 +14,15 @@ for(var/datum/power/changeling/P in powerinstances) if(!P.genomecost) // Is it free? if(!(P in mind.changeling.purchasedpowers)) // Do we not have it already? - mind.changeling.purchasePower(P.name)// Purchase it. + mind.changeling.purchasePower(P.name, 0)// Purchase it. Don't remake our verbs, we're doing it after this. + + for(var/datum/power/changeling/P in mind.changeling.purchasedpowers) + if(P.isVerb) + if(lesser_form && !P.allowduringlesserform) continue + if(!(P in src.verbs)) + src.verbs += P.verbpath + + src << "CH" mind.changeling.absorbed_dna |= dna return 1 diff --git a/code/game/gamemodes/changeling/modularchangling.dm b/code/game/gamemodes/changeling/modularchangling.dm index 240a89fb199..bef64c7c512 100644 --- a/code/game/gamemodes/changeling/modularchangling.dm +++ b/code/game/gamemodes/changeling/modularchangling.dm @@ -424,7 +424,7 @@ var/list/datum/power/changeling/powerinstances = list() -/datum/changeling/proc/purchasePower(var/Pname) +/datum/changeling/proc/purchasePower(var/Pname, var/remake_verbs = 1) if(!usr.mind || !usr.mind.changeling) return // src = usr.mind.changeling @@ -458,6 +458,6 @@ var/list/datum/power/changeling/powerinstances = list() if(!Thepower.isVerb && Thepower.verbpath) call(Thepower.verbpath)() - else + else if(remake_verbs) usr.make_changeling() diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index ef7b690d0a8..32a7185da5e 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -294,6 +294,8 @@ /mob/living/silicon/ai/Topic(href, href_list) + if(usr != src) + return ..() if (href_list["mach_close"]) if (href_list["mach_close"] == "aialerts")