From 142887810116351e172b3b309b358a68a5530170 Mon Sep 17 00:00:00 2001
From: Jaysyn904 <68194417+Jaysyn904@users.noreply.github.com>
Date: Mon, 21 Mar 2022 23:19:16 -0400
Subject: [PATCH] More mutation test scripts

More mutation test scripts.
---
 _content/ga_scripts/mut_t_disruption.ncs | Bin 0 -> 5579 bytes
 _content/ga_scripts/mut_t_disruption.nss |  55 +++++++++++++++++++
 _content/ga_scripts/mut_t_flex.nss       |   6 +-
 _content/ga_scripts/mut_t_kineticab.ncs  | Bin 0 -> 5611 bytes
 _content/ga_scripts/mut_t_kineticab.nss  |  55 +++++++++++++++++++
 _content/ga_scripts/mut_t_lifeleech.ncs  | Bin 0 -> 5579 bytes
 _content/ga_scripts/mut_t_lifeleech.nss  |  55 +++++++++++++++++++
 _content/ga_scripts/mut_t_lifesense.ncs  | Bin 0 -> 5611 bytes
 _content/ga_scripts/mut_t_lifesense.nss  |  53 ++++++++++++++++++
 _content/ga_scripts/mut_t_lifetrans.ncs  | Bin 0 -> 5579 bytes
 _content/ga_scripts/mut_t_lifetrans.nss  |  51 +++++++++++++++++
 _content/ga_scripts/mut_t_lowlight.ncs   | Bin 0 -> 5835 bytes
 _content/ga_scripts/mut_t_lowlight.nss   |  60 ++++++++++++++++++++
 _content/ga_scripts/mut_t_mblast.ncs     | Bin 0 -> 5579 bytes
 _content/ga_scripts/mut_t_mblast.nss     |  55 +++++++++++++++++++
 _content/ga_scripts/mut_t_mcontrol.ncs   | Bin 0 -> 5579 bytes
 _content/ga_scripts/mut_t_mcontrol.nss   |  53 ++++++++++++++++++
 _content/ga_scripts/mut_t_metamorph.ncs  | Bin 0 -> 5835 bytes
 _content/ga_scripts/mut_t_metamorph.nss  |  67 +++++++++++++++++++++++
 _content/ga_scripts/mut_t_mparalysis.ncs | Bin 0 -> 5579 bytes
 _content/ga_scripts/mut_t_mparalysis.nss |  56 +++++++++++++++++++
 _content/ga_scripts/mut_t_parasite.ncs   | Bin 0 -> 5835 bytes
 _content/ga_scripts/mut_t_parasite.nss   |  65 ++++++++++++++++++++++
 _content/ga_scripts/mut_t_paratouch.ncs  | Bin 0 -> 5835 bytes
 _content/ga_scripts/mut_t_paratouch.nss  |  62 +++++++++++++++++++++
 _content/ga_scripts/mut_t_photogen.ncs   | Bin 0 -> 5611 bytes
 _content/ga_scripts/mut_t_photogen.nss   |  58 ++++++++++++++++++++
 27 files changed, 748 insertions(+), 3 deletions(-)
 create mode 100644 _content/ga_scripts/mut_t_disruption.ncs
 create mode 100644 _content/ga_scripts/mut_t_disruption.nss
 create mode 100644 _content/ga_scripts/mut_t_kineticab.ncs
 create mode 100644 _content/ga_scripts/mut_t_kineticab.nss
 create mode 100644 _content/ga_scripts/mut_t_lifeleech.ncs
 create mode 100644 _content/ga_scripts/mut_t_lifeleech.nss
 create mode 100644 _content/ga_scripts/mut_t_lifesense.ncs
 create mode 100644 _content/ga_scripts/mut_t_lifesense.nss
 create mode 100644 _content/ga_scripts/mut_t_lifetrans.ncs
 create mode 100644 _content/ga_scripts/mut_t_lifetrans.nss
 create mode 100644 _content/ga_scripts/mut_t_lowlight.ncs
 create mode 100644 _content/ga_scripts/mut_t_lowlight.nss
 create mode 100644 _content/ga_scripts/mut_t_mblast.ncs
 create mode 100644 _content/ga_scripts/mut_t_mblast.nss
 create mode 100644 _content/ga_scripts/mut_t_mcontrol.ncs
 create mode 100644 _content/ga_scripts/mut_t_mcontrol.nss
 create mode 100644 _content/ga_scripts/mut_t_metamorph.ncs
 create mode 100644 _content/ga_scripts/mut_t_metamorph.nss
 create mode 100644 _content/ga_scripts/mut_t_mparalysis.ncs
 create mode 100644 _content/ga_scripts/mut_t_mparalysis.nss
 create mode 100644 _content/ga_scripts/mut_t_parasite.ncs
 create mode 100644 _content/ga_scripts/mut_t_parasite.nss
 create mode 100644 _content/ga_scripts/mut_t_paratouch.ncs
 create mode 100644 _content/ga_scripts/mut_t_paratouch.nss
 create mode 100644 _content/ga_scripts/mut_t_photogen.ncs
 create mode 100644 _content/ga_scripts/mut_t_photogen.nss

diff --git a/_content/ga_scripts/mut_t_disruption.ncs b/_content/ga_scripts/mut_t_disruption.ncs
new file mode 100644
index 0000000000000000000000000000000000000000..c8a59e371e647bcc6332f1f43ca1fd954093897e
GIT binary patch
literal 5579
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

literal 0
HcmV?d00001

diff --git a/_content/ga_scripts/mut_t_disruption.nss b/_content/ga_scripts/mut_t_disruption.nss
new file mode 100644
index 00000000..f29dac4a
--- /dev/null
+++ b/_content/ga_scripts/mut_t_disruption.nss
@@ -0,0 +1,55 @@
+//::///////////////////////////////////////////////////////////////////////////
+//:: Name		Molecular Disruption test script
+//:: FileName	mut_t_disruption.nss
+//:: Copyright	(c) 2022 NWNDS
+//::///////////////////////////////////////////////////////////////////////////
+/*
+Molecular Disruption (Mental)
+The mutant is able to disintegrate nearly any object. Against non-living materials he causes 3d6 + MPS modifier damage per round.
+(Refer PF Core, p175.) The power can be used a maximum of 3 rounds plus MPS mod rounds per day. The rounds of usage do not
+have to be consecutive. If molecular disruption is used against a living creature, a successful mental touch attack against the target
+causes 1d8 + MPS modifier damage. (DR is not effective.)
+
+[Add 1d8 non-typed (magical) damage to natural attacks for 5 + WIS Bonus rounds or 3d6+WIS Bonus Ranged touch attack, 3 + WIS Bonus uses / day]
+
+
+*/
+//:://////////////////////////////////////////////////////////////////////////
+//:: Created By: Jaysyn
+//:: Created On: 22/03/21
+//:://////////////////////////////////////////////////////////////////////////
+
+
+#include "prc_alterations"
+#include "prc_inc_template"
+#include "prc_racial_const"
+
+void main()
+{
+    object oPC = OBJECT_SELF;
+    SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_CONTINUE);	
+
+//:: Any living genotype except oozes, cyborgs & shapechangers
+    int nRace = MyPRCGetRacialType(oPC);
+	
+    if(nRace == RACIAL_TYPE_CONSTRUCT
+	|| nRace == RACIAL_TYPE_SMLBOT 
+	|| nRace == RACIAL_TYPE_MEDBOT
+	|| nRace == RACIAL_TYPE_LRGBOT
+	|| nRace == RACIAL_TYPE_DROID
+	|| nRace == RACIAL_TYPE_OOZE
+	|| nRace == RACIAL_TYPE_SHAPECHANGER
+	|| nRace == RACIAL_TYPE_CYBORG
+	|| nRace == RACIAL_TYPE_ELEMENTAL 
+	|| nRace == RACIAL_TYPE_UNDEAD)	   
+    {
+        SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+    }    
+	
+//:: Can't get this mutation twice.
+	if(GetHasTemplate(MUT_MOLECULAR_DISRUPTION, oPC)) 
+	{
+		SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+	}
+
+}
\ No newline at end of file
diff --git a/_content/ga_scripts/mut_t_flex.nss b/_content/ga_scripts/mut_t_flex.nss
index 5bd48bd0..21f02e2f 100644
--- a/_content/ga_scripts/mut_t_flex.nss
+++ b/_content/ga_scripts/mut_t_flex.nss
@@ -1,7 +1,7 @@
 //::///////////////////////////////////////////////////////////////////////////
-//:: Name           Flexibility template test script
-//:: FileName       mut_t_flex.nss
-//:: Copyright (c) 2022 NWNDS
+//:: Name		Flexibility template test script
+//:: FileName	mut_t_flex.nss
+//:: Copyright	(c) 2022 NWNDS
 //::///////////////////////////////////////////////////////////////////////////
 /*
 Flexibility (Physical)
diff --git a/_content/ga_scripts/mut_t_kineticab.ncs b/_content/ga_scripts/mut_t_kineticab.ncs
new file mode 100644
index 0000000000000000000000000000000000000000..84e5a2967d1183e6706d4583a05e08c1e28cd7a8
GIT binary patch
literal 5611
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

literal 0
HcmV?d00001

diff --git a/_content/ga_scripts/mut_t_kineticab.nss b/_content/ga_scripts/mut_t_kineticab.nss
new file mode 100644
index 00000000..96b3240c
--- /dev/null
+++ b/_content/ga_scripts/mut_t_kineticab.nss
@@ -0,0 +1,55 @@
+//::///////////////////////////////////////////////////////////////////////////
+//:: Name		Kinetic Absorption template test script
+//:: FileName	mut_t_kineticab.nss
+//:: Copyright	(c) 2022 NWNDS
+//::///////////////////////////////////////////////////////////////////////////
+/*
+Kinetic Absorption (Physical / Plant)
+The mutant generates a field that absorbs kinetic energy. Anything that is moving in the field loses some velocity. Objects fall slower,
+although the character himself does not. The mutant is considered to have DR 5 + MPS mod vs bludgeoning weapons and DR 2 +
+MPS mod vs slashing & piercing attacks. The character can maintain the field for 5 rounds, plus one round per MPS modifier. After that
+time, he must wait an hour before activating it again.
+
+[DR 5 + CON Bonus vs Blunt, DR 2 + CON Bonus vs slash & pierce.  5 + WIS Bonus rounds per activation]
+
+
+*/
+//:://////////////////////////////////////////////////////////////////////////
+//:: Created By: Jaysyn
+//:: Created On: 22/03/21
+//:://////////////////////////////////////////////////////////////////////////
+
+
+#include "prc_alterations"
+#include "prc_inc_template"
+#include "prc_racial_const"
+
+void main()
+{
+    object oPC = OBJECT_SELF;
+    SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_CONTINUE);	
+
+//:: Any living genotype except pure strain humans, oozes, cyborgs & shapechangers
+    int nRace = MyPRCGetRacialType(oPC);
+    if(nRace == RACIAL_TYPE_CONSTRUCT
+	|| nRace == RACIAL_TYPE_SMLBOT 
+	|| nRace == RACIAL_TYPE_MEDBOT
+	|| nRace == RACIAL_TYPE_LRGBOT
+	|| nRace == RACIAL_TYPE_DROID
+	|| nRace == RACIAL_TYPE_OOZE
+	|| nRace == RACIAL_TYPE_PSH
+	|| nRace == RACIAL_TYPE_SHAPECHANGER
+	|| nRace == RACIAL_TYPE_CYBORG
+	|| nRace == RACIAL_TYPE_ELEMENTAL 
+	|| nRace == RACIAL_TYPE_UNDEAD)	   
+    {
+        SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+    }    
+	
+//:: Can't get this mutation twice.
+	if(GetHasTemplate(MUT_KINETIC_ABSORPTION, oPC)) 
+	{
+		SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+	}
+
+}
\ No newline at end of file
diff --git a/_content/ga_scripts/mut_t_lifeleech.ncs b/_content/ga_scripts/mut_t_lifeleech.ncs
new file mode 100644
index 0000000000000000000000000000000000000000..aeeedbbb0d5199abddd39ed0eac8e5a5fa6047cc
GIT binary patch
literal 5579
zcma)AO>7%Q6rS0&9g?_i{@NsMlP*a^ewsiFD3zi%;5hCN3TYI(Eg-;kolWEX*oos-
z;)1v!^$0}*A&?M6i1I5AoDmh!3n29bs>A^a4hZE?RRw~Ys=Rq`XT39C$F0=e%)Ix#
z|9Nk`ld*(#`ryL{#u(f2LnniO4_M4F13^|hH62Th$Hz_`!|k>KhVRk+Y&W}i@7|`x
zOfKFGc-bumkH-uyc5br(adZfAA;}#GiDkePPa%n4GE9`P!2-DcNXkQ=x_V2ldjzCS
z@{)vlt7a=YuR;%2q3^6h@2Em=twP^bh2Btw-X`dKMO>ON9vpKs>_ikYfV<bkZp~~N
zUj%cqQOY2su;H0UQxmC)Xd;=Kjweq?rzu~M)<dS7!XS$z5|gR1=tOif7Eeu#%cNlT
zQICb1+sZ2;^s~&T;MjII$asfQ1+wOau;&1B#z6UIguJh;ZBBs(OVH+sS~%U(2Ne8E
ziLo}K*O<yWe*diRYOEf&TgoF9{7kXkR=^%;hYxf`fgY;_ZSa8(E6|=w(E4&{;En?Q
zyb`q42l|ZyJyQwV=mUKf%C=o}sl;4%wwTSGKY7tE6tXjRYC4^<Q7-frEKR8dqc<Q|
zm~p<tLfJQ+wzVPJR-j+P1y9o=n57geWle#Y|0s~RbO?o9g?#IUH2$bV>dFl>UsE7o
z>yXENATM|!O$8lN;{%}(LG;l54|NFDfZ~hsuUAXsH622^S0UedAx%p<q^aC6<8=j+
z(;-wQs+JcO$g&RE=A&i50{K9P)Rsf|h60(@A<PHzy#hI}L%0v*vI3dYAvAy$_jyWz
zWOaz?qh(Nm%<GUyIfVVEKo)dJ$Om#wf#h{a*az~40$I@^+kGHs708+nY4?E)NeHx#
z1)nUiFbzaG7U{ZFw3n6_(?y%&4I>!P&+`_V8ITg3&|jixxHHK&Hl&7L=Oz`Rsdg4;
zF9!+RkJ-iJ>D8noyANR?%#jUmW6)~p#zw}F_$LzY8n6j>xPB|UY849??3Ql43;Zhe
zqTB1<mZx|HcLO8jkqYjh{YMZFD}2lDT3wiAM|U3t%Nj-Bjy|18<`?W-ES;IN@wT`J
zNKJxt9NKt^Cbc5GT{s5N6w(paEVf*T<c1*4b94f(gIy+qyCe~9hG1b5Zwo2>mJvd#
zlPvz1<i$4x3k1Ryt90uf;3Sp5iJKS>p5O`xYNaBitMV11gSh%`k4Zp8lOVQKSLj$T
z%EDseNh(FqA{pSa{dP$+ljg85a1-3X_aA6@r*=74aA?PqgAHQx!G8;NcOVOd2;XP}
zyJR?*Mp}jp<QyHM+5?RgZbX2GA}w=}$)d<IL~pO=qo#2$RUFBnzu~;bOh+e`TZl3M
z3&p<Q(903$u8JfXQXpZ(*3noxyf<+N%3K~j48c_}cu)S^yqzgpaPp>NiG^&g&)LXN
z#rlCBUM^%(*<2>I3N%;`3dU*T?6)%M#YKC@%IB<HJ~xyp*y-Yhf^CtA5z7e5(1_#2
z-^Wur01{53(&S6acAwB=9XVp19D6DrOQw>~PQ_EP>3B4GYC0~_N@)vGMvZhC<JJfa
z@A#Ig$jP>I=~X)={184Mkn-siiCbb)CP*9L7@<BAj|7<l=ez`h7~i!a%mgJ7`9xXh
zN=wDyDyuBn{1j<aWWWzy@2cU}P8iizsU13dPVLCT0K=#ZJcY4Ihs*QZNc?W)^<C(G
zC+Lnii8(QOIy!M;9I;EV&wD*qQaqhD9PG7*tX^jnp#AI$Oa{P|Q;efT2?&fA!W)3#
z(<0m-*fLpUMLmuZ{yQjXimtBOg<=+payFfX@*J^{7i=tzC*WgY8deaV9`Kp%L@sCm
zMALq76BU|^q>2FXglh!^q|PzeO)(Ow96%XH^dSkrH}ni&4D}L!12q%abssIRV_<9r
zv%qU0n$aQ!2c))i-=8h$hZYWJlJAq=foNj{@`(vl;{l413pJ{Ax(6T?FgSsC;qx+8
zDL&UNaUw#8GhfZWH!69tx&ntE$&9vigX(?oeTH9jJ15BvQ%xV-8jTXMoTUIT7(^c6
zbapI;CxD?9%}4Wvj2&OOkX=sZ6N~v`>fj-15)|050gnN9Kw{vAL0Cl?9V2JxLg9qF
zoWSCtH|tO~+QV+ZFqTUc-0D%h2E-607Pyg2ACyEficeC9BbFoiBG@xna-*-`IW%rh
z&o3>db2I64i?%g66?1z!nA!;+#_s%tp|7`Q^93slmqL+sr|p9>WcdVha)67#8AsuZ
zhPYBdg3%IB>qdu#vHWjjf%QHUSl7KroW1OJ!UoL5ZW1FA5OGURZO{SBkP!$x@d`+F
z)KV=WKRB^fI=}$HkC;La?{ua<3BBQFwFijK=Q?q0MRbGWQwm1?W2pw@xc8M|=i=pr
zaAO5617)5n-$b45=;6!|(|m5Gh=9;quH6<i&ijatj2z0W+fIhJ$X&D`Ote5CYBAQ@
pqefEGNF5HmkrL!v)WYWV(xd_FYv@8Xh%<ESQ^CWACp@<;_CLuOJ!k*`

literal 0
HcmV?d00001

diff --git a/_content/ga_scripts/mut_t_lifeleech.nss b/_content/ga_scripts/mut_t_lifeleech.nss
new file mode 100644
index 00000000..2c64d8b4
--- /dev/null
+++ b/_content/ga_scripts/mut_t_lifeleech.nss
@@ -0,0 +1,55 @@
+//::///////////////////////////////////////////////////////////////////////////
+//:: Name		Life-leech template test script
+//:: FileName	mut_t_lifeleech.nss
+//:: Copyright	(c) 2022 NWNDS
+//::///////////////////////////////////////////////////////////////////////////
+/*
+Life-leech (Mental)
+The mutant is able to drain the life force out of any living creature, except normal plants. The character drains 5+ MPS modifier hit
+points from all targets within 30 feet each round. As a swift action, the mutant can make a DC20 Concentration check to alter the radius
+of the effect to be anything between 10 and 30 feet. Once activated, it can be kept active as a move action, for a maximum of 5+ MPS
+modifier rounds. It requires two hours before it can be activated again. Any hit points drained from nearby creatures are first used to
+heal any damage taken, with additional points granting temporary hit points to a maximum of 5 Hp’s per MPS. Temporary HP’s
+remaining after one hour are lost.
+
+
+*/
+//:://////////////////////////////////////////////////////////////////////////
+//:: Created By: Jaysyn
+//:: Created On: 22/03/21
+//:://////////////////////////////////////////////////////////////////////////
+
+
+#include "prc_alterations"
+#include "prc_inc_template"
+#include "prc_racial_const"
+
+void main()
+{
+    object oPC = OBJECT_SELF;
+    SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_CONTINUE);	
+
+//:: Any living genotype except oozes, cyborgs & shapechangers
+    int nRace = MyPRCGetRacialType(oPC);
+	
+    if(nRace == RACIAL_TYPE_CONSTRUCT
+	|| nRace == RACIAL_TYPE_SMLBOT 
+	|| nRace == RACIAL_TYPE_MEDBOT
+	|| nRace == RACIAL_TYPE_LRGBOT
+	|| nRace == RACIAL_TYPE_DROID
+	|| nRace == RACIAL_TYPE_OOZE
+	|| nRace == RACIAL_TYPE_SHAPECHANGER
+	|| nRace == RACIAL_TYPE_CYBORG
+	|| nRace == RACIAL_TYPE_ELEMENTAL 
+	|| nRace == RACIAL_TYPE_UNDEAD)	   
+    {
+        SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+    }    
+	
+//:: Can't get this mutation twice.
+	if(GetHasTemplate(MUT_LIFE_LEECH, oPC)) 
+	{
+		SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+	}
+
+}
\ No newline at end of file
diff --git a/_content/ga_scripts/mut_t_lifesense.ncs b/_content/ga_scripts/mut_t_lifesense.ncs
new file mode 100644
index 0000000000000000000000000000000000000000..9a4449d3baefc36f5700581796efa99af5801c3c
GIT binary patch
literal 5611
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

literal 0
HcmV?d00001

diff --git a/_content/ga_scripts/mut_t_lifesense.nss b/_content/ga_scripts/mut_t_lifesense.nss
new file mode 100644
index 00000000..55c4d5dd
--- /dev/null
+++ b/_content/ga_scripts/mut_t_lifesense.nss
@@ -0,0 +1,53 @@
+//::///////////////////////////////////////////////////////////////////////////
+//:: Name		Life Force Sense template test script
+//:: FileName	mut_t_lifesense.nss
+//:: Copyright	(c) 2022 NWNDS
+//::///////////////////////////////////////////////////////////////////////////
+/*
+Life Force Sense (Physical / Plant)
+The mutant can sense life energy emanating from living creatures. Low-order life forms, such as mosses,
+typically radiate only a dim “glow” at best
+
+[Detect Living (use detect undead as a base)]
+
+
+*/
+//:://////////////////////////////////////////////////////////////////////////
+//:: Created By: Jaysyn
+//:: Created On: 22/03/21
+//:://////////////////////////////////////////////////////////////////////////
+
+
+#include "prc_alterations"
+#include "prc_inc_template"
+#include "prc_racial_const"
+
+void main()
+{
+    object oPC = OBJECT_SELF;
+    SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_CONTINUE);	
+
+//:: Any living genotype except pure strain humans, oozes, cyborgs & shapechangers
+    int nRace = MyPRCGetRacialType(oPC);
+    if(nRace == RACIAL_TYPE_CONSTRUCT
+	|| nRace == RACIAL_TYPE_SMLBOT 
+	|| nRace == RACIAL_TYPE_MEDBOT
+	|| nRace == RACIAL_TYPE_LRGBOT
+	|| nRace == RACIAL_TYPE_DROID
+	|| nRace == RACIAL_TYPE_OOZE
+	|| nRace == RACIAL_TYPE_PSH
+	|| nRace == RACIAL_TYPE_SHAPECHANGER
+	|| nRace == RACIAL_TYPE_CYBORG
+	|| nRace == RACIAL_TYPE_ELEMENTAL 
+	|| nRace == RACIAL_TYPE_UNDEAD)	   
+    {
+        SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+    }    
+	
+//:: Can't get this mutation twice.
+	if(GetHasTemplate(MUT_LIFE_FORCE_SENSE, oPC)) 
+	{
+		SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+	}
+
+}
\ No newline at end of file
diff --git a/_content/ga_scripts/mut_t_lifetrans.ncs b/_content/ga_scripts/mut_t_lifetrans.ncs
new file mode 100644
index 0000000000000000000000000000000000000000..8ce4bf3efd2e11a1ccdc03af6708a5bff02bfdcc
GIT binary patch
literal 5579
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

literal 0
HcmV?d00001

diff --git a/_content/ga_scripts/mut_t_lifetrans.nss b/_content/ga_scripts/mut_t_lifetrans.nss
new file mode 100644
index 00000000..8f3921f2
--- /dev/null
+++ b/_content/ga_scripts/mut_t_lifetrans.nss
@@ -0,0 +1,51 @@
+//::///////////////////////////////////////////////////////////////////////////
+//:: Name		Life Transfer template test script
+//:: FileName	mut_t_lifetrans.nss
+//:: Copyright	(c) 2022 NWNDS
+//::///////////////////////////////////////////////////////////////////////////
+/*
+Life Transfer (Mental)
+Full round action to heal HD + CON Bonus (min 5) HP on other, cause 1d6 damage, use 5 + WIS Bonus / day
+
+
+
+*/
+//:://////////////////////////////////////////////////////////////////////////
+//:: Created By: Jaysyn
+//:: Created On: 22/03/21
+//:://////////////////////////////////////////////////////////////////////////
+
+
+#include "prc_alterations"
+#include "prc_inc_template"
+#include "prc_racial_const"
+
+void main()
+{
+    object oPC = OBJECT_SELF;
+    SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_CONTINUE);	
+
+//:: Any living genotype except oozes, cyborgs & shapechangers
+    int nRace = MyPRCGetRacialType(oPC);
+	
+    if(nRace == RACIAL_TYPE_CONSTRUCT
+	|| nRace == RACIAL_TYPE_SMLBOT 
+	|| nRace == RACIAL_TYPE_MEDBOT
+	|| nRace == RACIAL_TYPE_LRGBOT
+	|| nRace == RACIAL_TYPE_DROID
+	|| nRace == RACIAL_TYPE_OOZE
+	|| nRace == RACIAL_TYPE_SHAPECHANGER
+	|| nRace == RACIAL_TYPE_CYBORG
+	|| nRace == RACIAL_TYPE_ELEMENTAL 
+	|| nRace == RACIAL_TYPE_UNDEAD)	   
+    {
+        SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+    }    
+	
+//:: Can't get this mutation twice.
+	if(GetHasTemplate(MUT_LIFE_TRANSFER, oPC)) 
+	{
+		SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+	}
+
+}
\ No newline at end of file
diff --git a/_content/ga_scripts/mut_t_lowlight.ncs b/_content/ga_scripts/mut_t_lowlight.ncs
new file mode 100644
index 0000000000000000000000000000000000000000..f7ebf16579fe6a4580b52c19972f289c06cb99ec
GIT binary patch
literal 5835
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
Rk9+9WtAa-iS9xxm?0=<2gIoXr

literal 0
HcmV?d00001

diff --git a/_content/ga_scripts/mut_t_lowlight.nss b/_content/ga_scripts/mut_t_lowlight.nss
new file mode 100644
index 00000000..5e85ef81
--- /dev/null
+++ b/_content/ga_scripts/mut_t_lowlight.nss
@@ -0,0 +1,60 @@
+//::///////////////////////////////////////////////////////////////////////////
+//:: Name		Low-light Vision template test script
+//:: FileName	mut_t_lowlight.nss
+//:: Copyright	(c) 2022 NWNDS
+//::///////////////////////////////////////////////////////////////////////////
+/*
+Low-light Vision (Physical)
+Characters with low-light vision have eyes that are so sensitive to light that they can see twice as far as normal in dim light. Low-light
+vision is color vision. Characters with low-light vision can see outdoors on a moonlit night as well as they can during the day. The
+character's normal daylight light vision is unaffected
+
+[Low-Light Vision]
+
+*/
+//:://////////////////////////////////////////////////////////////////////////
+//:: Created By: Jaysyn
+//:: Created On: 22/03/21
+//:://////////////////////////////////////////////////////////////////////////
+
+
+#include "prc_alterations"
+#include "prc_inc_template"
+#include "prc_racial_const"
+
+void main()
+{
+    object oPC = OBJECT_SELF;
+    SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_CONTINUE);	
+
+//:: No pure strain humans, plants, oozes, cyborgs, shapechangers or non-living genotypes
+    int nRace = MyPRCGetRacialType(oPC);
+    if(nRace == RACIAL_TYPE_CONSTRUCT
+	|| nRace == RACIAL_TYPE_PLANT
+	|| nRace == RACIAL_TYPE_PSH
+	|| nRace == RACIAL_TYPE_SHRUBO
+	|| nRace == RACIAL_TYPE_BLOOM
+	|| nRace == RACIAL_TYPE_MYCO
+	|| nRace == RACIAL_TYPE_CULEN
+	|| nRace == RACIAL_TYPE_ENT
+	|| nRace == RACIAL_TYPE_CREEP
+	|| nRace == RACIAL_TYPE_SMLBOT 
+	|| nRace == RACIAL_TYPE_MEDBOT
+	|| nRace == RACIAL_TYPE_LRGBOT
+	|| nRace == RACIAL_TYPE_DROID
+	|| nRace == RACIAL_TYPE_OOZE
+	|| nRace == RACIAL_TYPE_SHAPECHANGER
+	|| nRace == RACIAL_TYPE_CYBORG
+	|| nRace == RACIAL_TYPE_ELEMENTAL 
+	|| nRace == RACIAL_TYPE_UNDEAD)	   
+    {
+        SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+    }   
+	
+//:: Can't get this mutation twice.
+	if(GetHasTemplate(MUT_LOW_LIGHT_VISION, oPC)) 
+	{
+		SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+	}
+
+}
\ No newline at end of file
diff --git a/_content/ga_scripts/mut_t_mblast.ncs b/_content/ga_scripts/mut_t_mblast.ncs
new file mode 100644
index 0000000000000000000000000000000000000000..2436041ecfc632253084a1df89df2517c6f576d2
GIT binary patch
literal 5579
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

literal 0
HcmV?d00001

diff --git a/_content/ga_scripts/mut_t_mblast.nss b/_content/ga_scripts/mut_t_mblast.nss
new file mode 100644
index 00000000..3b668f89
--- /dev/null
+++ b/_content/ga_scripts/mut_t_mblast.nss
@@ -0,0 +1,55 @@
+//::///////////////////////////////////////////////////////////////////////////
+//:: Name           Mental Blast test script
+//:: FileName       mut_t_mblast.nss
+//:: Copyright (c) 2022 NWNDS
+//::///////////////////////////////////////////////////////////////////////////
+/*
+Mental Blast (Mental)
+The mutant can directly attack any living target within a range of 50 feet plus 5’ per MPS mod. If a Mental Attack roll is successful
+against the targets touch armour class, it causes non-lethal damage. The mutant accumulates 1d6 of potential energy every minute, to
+a maximum of 3d6. The mutant can choose to discharge one, two, or three dice (as long as he has that much stored), adding his MPS
+modifier to the total damage
+
+(Long ranged touch attack, 3d6 + WIS Bonus Mental (Positive?) damage, 1 use restored / 3 turns)
+
+
+*/
+//:://////////////////////////////////////////////////////////////////////////
+//:: Created By: Jaysyn
+//:: Created On: 22/03/21
+//:://////////////////////////////////////////////////////////////////////////
+
+
+#include "prc_alterations"
+#include "prc_inc_template"
+#include "prc_racial_const"
+
+void main()
+{
+    object oPC = OBJECT_SELF;
+    SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_CONTINUE);	
+
+//:: Any living genotype except oozes, cyborgs & shapechangers
+    int nRace = MyPRCGetRacialType(oPC);
+	
+    if(nRace == RACIAL_TYPE_CONSTRUCT
+	|| nRace == RACIAL_TYPE_SMLBOT 
+	|| nRace == RACIAL_TYPE_MEDBOT
+	|| nRace == RACIAL_TYPE_LRGBOT
+	|| nRace == RACIAL_TYPE_DROID
+	|| nRace == RACIAL_TYPE_OOZE
+	|| nRace == RACIAL_TYPE_SHAPECHANGER
+	|| nRace == RACIAL_TYPE_CYBORG
+	|| nRace == RACIAL_TYPE_ELEMENTAL 
+	|| nRace == RACIAL_TYPE_UNDEAD)	   
+    {
+        SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+    }    
+	
+//:: Can't get this mutation twice.
+	if(GetHasTemplate(MUT_MENTAL_BLAST, oPC)) 
+	{
+		SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+	}
+
+}
\ No newline at end of file
diff --git a/_content/ga_scripts/mut_t_mcontrol.ncs b/_content/ga_scripts/mut_t_mcontrol.ncs
new file mode 100644
index 0000000000000000000000000000000000000000..781968b7b48cfe670c0d70521c1ce3e8f0599fee
GIT binary patch
literal 5579
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

literal 0
HcmV?d00001

diff --git a/_content/ga_scripts/mut_t_mcontrol.nss b/_content/ga_scripts/mut_t_mcontrol.nss
new file mode 100644
index 00000000..fe44b936
--- /dev/null
+++ b/_content/ga_scripts/mut_t_mcontrol.nss
@@ -0,0 +1,53 @@
+//::///////////////////////////////////////////////////////////////////////////
+//:: Name		Mental Control test script
+//:: FileName	mut_t_mcontrol.nss
+//:: Copyright	(c) 2022 NWNDS
+//::///////////////////////////////////////////////////////////////////////////
+/*
+Mental Control (Mental)
+The mutant can take control of another creature's body at a maximum distance of 25 feet + 5 feet per MPS modifier. Green Folk can
+only control other plants; New Animals and humans can control each other, but not plants
+
+[Dominate Monster, 5 + 1 / CHA Bonus, DC = 10 + 1/2 HD + CHA Bonus]
+
+
+*/
+//:://////////////////////////////////////////////////////////////////////////
+//:: Created By: Jaysyn
+//:: Created On: 22/03/21
+//:://////////////////////////////////////////////////////////////////////////
+
+
+#include "prc_alterations"
+#include "prc_inc_template"
+#include "prc_racial_const"
+
+void main()
+{
+    object oPC = OBJECT_SELF;
+    SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_CONTINUE);	
+
+//:: Any living genotype except oozes, cyborgs & shapechangers
+    int nRace = MyPRCGetRacialType(oPC);
+	
+    if(nRace == RACIAL_TYPE_CONSTRUCT
+	|| nRace == RACIAL_TYPE_SMLBOT 
+	|| nRace == RACIAL_TYPE_MEDBOT
+	|| nRace == RACIAL_TYPE_LRGBOT
+	|| nRace == RACIAL_TYPE_DROID
+	|| nRace == RACIAL_TYPE_OOZE
+	|| nRace == RACIAL_TYPE_SHAPECHANGER
+	|| nRace == RACIAL_TYPE_CYBORG
+	|| nRace == RACIAL_TYPE_ELEMENTAL 
+	|| nRace == RACIAL_TYPE_UNDEAD)	   
+    {
+        SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+    }    
+	
+//:: Can't get this mutation twice.
+	if(GetHasTemplate(MUT_MENTAL_CONTROL, oPC)) 
+	{
+		SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+	}
+
+}
\ No newline at end of file
diff --git a/_content/ga_scripts/mut_t_metamorph.ncs b/_content/ga_scripts/mut_t_metamorph.ncs
new file mode 100644
index 0000000000000000000000000000000000000000..27328ad9c58c066f7665ceb98eb2fb0660a334af
GIT binary patch
literal 5835
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
R0Qb<XR|O9nuJYWm*#GqXgJ1vv

literal 0
HcmV?d00001

diff --git a/_content/ga_scripts/mut_t_metamorph.nss b/_content/ga_scripts/mut_t_metamorph.nss
new file mode 100644
index 00000000..2a13024f
--- /dev/null
+++ b/_content/ga_scripts/mut_t_metamorph.nss
@@ -0,0 +1,67 @@
+//::///////////////////////////////////////////////////////////////////////////
+//:: Name           Metamorphosis template test script
+//:: FileName       mut_t_metamorph.nss
+//:: Copyright (c) 2022 NWNDS
+//::///////////////////////////////////////////////////////////////////////////
+/*
+Metamorphosis (Physical)
+The character can transform his body into a duplicate of any creature he touches. Against an unwilling target he must make a
+successful touch attack to begin the transformation, which takes 1d6 rounds. The mutant transforms into an exact duplicate of the
+creature touched and gains the size and physical attributes (Strength, Dexterity and Constitution) of the target, in place of his own. If
+the form has any of the following abilities, he gains those abilities: climb, fly, swim, natural attack, darkvision, low-light vision, and/or
+natural armour. The mutant does not get any other special abilities of the creature he copies. For example, he can duplicate quills, but
+is not able to fire them. He can fly, but not do fancy aerial manoeuvres. The character retains his mental attributes, base saving throws,
+base attack and skill bonuses, as well as physical and mental mutations not affected by the change. He does not copy any clothes,
+armour or possessions. The transformation lasts up to 10 minutes plus 2 minutes per MPS modifier. Metamorphosis cannot be
+activated more than once every two hours.
+
+[Shifting via touch attack.  1d6 round delay, 10 + 2 / WIS Bonus minute duration, Can only be activated once every two hours]
+
+
+*/
+//:://////////////////////////////////////////////////////////////////////////
+//:: Created By: Jaysyn
+//:: Created On: 22/03/21
+//:://////////////////////////////////////////////////////////////////////////
+
+
+#include "prc_alterations"
+#include "prc_inc_template"
+#include "prc_racial_const"
+
+void main()
+{
+    object oPC = OBJECT_SELF;
+    SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_CONTINUE);	
+
+//:: No pure strain humans, plants, oozes, cyborgs, shapechangers or non-living genotypes
+    int nRace = MyPRCGetRacialType(oPC);
+    if(nRace == RACIAL_TYPE_CONSTRUCT
+	|| nRace == RACIAL_TYPE_PLANT
+	|| nRace == RACIAL_TYPE_PSH
+	|| nRace == RACIAL_TYPE_SHRUBO
+	|| nRace == RACIAL_TYPE_BLOOM
+	|| nRace == RACIAL_TYPE_MYCO
+	|| nRace == RACIAL_TYPE_CULEN
+	|| nRace == RACIAL_TYPE_ENT
+	|| nRace == RACIAL_TYPE_CREEP
+	|| nRace == RACIAL_TYPE_SMLBOT 
+	|| nRace == RACIAL_TYPE_MEDBOT
+	|| nRace == RACIAL_TYPE_LRGBOT
+	|| nRace == RACIAL_TYPE_DROID
+	|| nRace == RACIAL_TYPE_OOZE
+	|| nRace == RACIAL_TYPE_SHAPECHANGER
+	|| nRace == RACIAL_TYPE_CYBORG
+	|| nRace == RACIAL_TYPE_ELEMENTAL 
+	|| nRace == RACIAL_TYPE_UNDEAD)	   
+    {
+        SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+    }   
+	
+//:: Can't get this mutation twice.  
+	if(GetHasTemplate(MUT_METAMORPHOSIS, oPC)) 
+	{
+		SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+	}
+
+}
\ No newline at end of file
diff --git a/_content/ga_scripts/mut_t_mparalysis.ncs b/_content/ga_scripts/mut_t_mparalysis.ncs
new file mode 100644
index 0000000000000000000000000000000000000000..c9960d935f650a188e133697a4c4e4a78aa7a946
GIT binary patch
literal 5579
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

literal 0
HcmV?d00001

diff --git a/_content/ga_scripts/mut_t_mparalysis.nss b/_content/ga_scripts/mut_t_mparalysis.nss
new file mode 100644
index 00000000..a4c14c27
--- /dev/null
+++ b/_content/ga_scripts/mut_t_mparalysis.nss
@@ -0,0 +1,56 @@
+//::///////////////////////////////////////////////////////////////////////////
+//:: Name		Mental Paralysis test script
+//:: FileName	mut_t_mparalysis.nss
+//:: Copyright	(c) 2022 NWNDS
+//::///////////////////////////////////////////////////////////////////////////
+/*
+Mental Paralysis (Mental)
+The character is able to isolate the victim's mind from the voluntary motor centres of his brain. The target must be within a range of 25
+feet plus 5’ per MPS mod, and fail a Health save. The victim falls prone. He can still breathe, his heart beats, his eyes blink, etc; but he
+cannot move his limbs, speak, or control any other muscles. The victim can still use mental powers and sense the world around him
+normally, but his direction of vision will be limited. The effect lasts for 1d6 rounds + 1 round per MPS mod. The power can be used a
+number of times a day equal to 3 plus the MPS mod.
+
+[Hold Monster, 5 + 1 / WIS Bonus, DC = 10 + 1/2 HD + WIS Bonus]
+
+
+*/
+//:://////////////////////////////////////////////////////////////////////////
+//:: Created By: Jaysyn
+//:: Created On: 22/03/21
+//:://////////////////////////////////////////////////////////////////////////
+
+
+#include "prc_alterations"
+#include "prc_inc_template"
+#include "prc_racial_const"
+
+void main()
+{
+    object oPC = OBJECT_SELF;
+    SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_CONTINUE);	
+
+//:: Any living genotype except oozes, cyborgs & shapechangers
+    int nRace = MyPRCGetRacialType(oPC);
+	
+    if(nRace == RACIAL_TYPE_CONSTRUCT
+	|| nRace == RACIAL_TYPE_SMLBOT 
+	|| nRace == RACIAL_TYPE_MEDBOT
+	|| nRace == RACIAL_TYPE_LRGBOT
+	|| nRace == RACIAL_TYPE_DROID
+	|| nRace == RACIAL_TYPE_OOZE
+	|| nRace == RACIAL_TYPE_SHAPECHANGER
+	|| nRace == RACIAL_TYPE_CYBORG
+	|| nRace == RACIAL_TYPE_ELEMENTAL 
+	|| nRace == RACIAL_TYPE_UNDEAD)	   
+    {
+        SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+    }    
+	
+//:: Can't get this mutation twice.
+	if(GetHasTemplate(MUT_MENTAL_PARALYSIS, oPC)) 
+	{
+		SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+	}
+
+}
\ No newline at end of file
diff --git a/_content/ga_scripts/mut_t_parasite.ncs b/_content/ga_scripts/mut_t_parasite.ncs
new file mode 100644
index 0000000000000000000000000000000000000000..ab0aab0ac988133f0136397159b739c77cd1af30
GIT binary patch
literal 5835
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
RaSz>kRq%-6D$i|`{SPqKgJS>y

literal 0
HcmV?d00001

diff --git a/_content/ga_scripts/mut_t_parasite.nss b/_content/ga_scripts/mut_t_parasite.nss
new file mode 100644
index 00000000..956a094d
--- /dev/null
+++ b/_content/ga_scripts/mut_t_parasite.nss
@@ -0,0 +1,65 @@
+//::///////////////////////////////////////////////////////////////////////////
+//:: Name		Parasite template test script
+//:: FileName	mut_t_parasite.nss
+//:: Copyright	(c) 2022 NWNDS
+//::///////////////////////////////////////////////////////////////////////////
+/*
+Parasite (Physical)
+The mutant gains the ability to latch onto the "life force" of other beings and drain some of it to his own body. The mutant must make a
+touch attack on his target to use this power. The target suffers 1d8 points of damage, which the mutant receives as healing. The target
+can make a Health save to halve the damage taken. The save DC equals 10 + half the mutants level + CON mod. Any healing that
+exceeds the mutant’s normal hit point total become temporary hit points. Any temporary HP’s gained are lost in 1 hour. If the mutant
+has a natural attack, they can activate this power as part of that attack.
+
+
+[Vampiric Touch activated touch attack & natural attack onhit, DC = 10 + 1/2 HD + CON Bonus]
+
+
+
+*/
+//:://////////////////////////////////////////////////////////////////////////
+//:: Created By: Jaysyn
+//:: Created On: 22/03/21
+//:://////////////////////////////////////////////////////////////////////////
+
+
+#include "prc_alterations"
+#include "prc_inc_template"
+#include "prc_racial_const"
+
+void main()
+{
+    object oPC = OBJECT_SELF;
+    SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_CONTINUE);	
+
+//:: No pure strain humans, plants, oozes, cyborgs, shapechangers or non-living genotypes
+    int nRace = MyPRCGetRacialType(oPC);
+    if(nRace == RACIAL_TYPE_CONSTRUCT
+	|| nRace == RACIAL_TYPE_PLANT
+	|| nRace == RACIAL_TYPE_PSH
+	|| nRace == RACIAL_TYPE_SHRUBO
+	|| nRace == RACIAL_TYPE_BLOOM
+	|| nRace == RACIAL_TYPE_MYCO
+	|| nRace == RACIAL_TYPE_CULEN
+	|| nRace == RACIAL_TYPE_ENT
+	|| nRace == RACIAL_TYPE_CREEP
+	|| nRace == RACIAL_TYPE_SMLBOT 
+	|| nRace == RACIAL_TYPE_MEDBOT
+	|| nRace == RACIAL_TYPE_LRGBOT
+	|| nRace == RACIAL_TYPE_DROID
+	|| nRace == RACIAL_TYPE_OOZE
+	|| nRace == RACIAL_TYPE_SHAPECHANGER
+	|| nRace == RACIAL_TYPE_CYBORG
+	|| nRace == RACIAL_TYPE_ELEMENTAL 
+	|| nRace == RACIAL_TYPE_UNDEAD)	   
+    {
+        SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+    }   
+	
+//:: Can't get this mutation twice.
+	if(GetHasTemplate(MUT_PARASITE, oPC)) 
+	{
+		SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+	}
+
+}
\ No newline at end of file
diff --git a/_content/ga_scripts/mut_t_paratouch.ncs b/_content/ga_scripts/mut_t_paratouch.ncs
new file mode 100644
index 0000000000000000000000000000000000000000..5df8229a4b5f75459b0c5d58393f01f42f86b896
GIT binary patch
literal 5835
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
R;~u*8s^AgBRi4`>`yU+WgJJ*x

literal 0
HcmV?d00001

diff --git a/_content/ga_scripts/mut_t_paratouch.nss b/_content/ga_scripts/mut_t_paratouch.nss
new file mode 100644
index 00000000..8067333a
--- /dev/null
+++ b/_content/ga_scripts/mut_t_paratouch.nss
@@ -0,0 +1,62 @@
+//::///////////////////////////////////////////////////////////////////////////
+//:: Name		Paralytic Touch template test script
+//:: FileName	mut_t_paratouch.nss
+//:: Copyright	(c) 2022 NWNDS
+//::///////////////////////////////////////////////////////////////////////////
+/*
+Paralytic Touch (Physical)
+The mutant’s claws, teeth, stinger or hands secrete a powerful paralytic venom. Anyone who takes damage in melee from the
+character's natural weapons must make a Health save or be paralysed for 1d6 rounds plus 1 round per MPS modifier. The save DC
+equals 10 + half the mutants level + MPS mod. It takes the mutant an hour to produce enough venom for another attack.
+
+
+[1d6 + CON Bonus rounds of paralysis onHit via natural attack once per success per hour]
+
+
+*/
+//:://////////////////////////////////////////////////////////////////////////
+//:: Created By: Jaysyn
+//:: Created On: 22/03/21
+//:://////////////////////////////////////////////////////////////////////////
+
+
+#include "prc_alterations"
+#include "prc_inc_template"
+#include "prc_racial_const"
+
+void main()
+{
+    object oPC = OBJECT_SELF;
+    SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_CONTINUE);	
+
+//:: No pure strain humans, plants, oozes, cyborgs, shapechangers or non-living genotypes
+    int nRace = MyPRCGetRacialType(oPC);
+    if(nRace == RACIAL_TYPE_CONSTRUCT
+	|| nRace == RACIAL_TYPE_PLANT
+	|| nRace == RACIAL_TYPE_PSH
+	|| nRace == RACIAL_TYPE_SHRUBO
+	|| nRace == RACIAL_TYPE_BLOOM
+	|| nRace == RACIAL_TYPE_MYCO
+	|| nRace == RACIAL_TYPE_CULEN
+	|| nRace == RACIAL_TYPE_ENT
+	|| nRace == RACIAL_TYPE_CREEP
+	|| nRace == RACIAL_TYPE_SMLBOT 
+	|| nRace == RACIAL_TYPE_MEDBOT
+	|| nRace == RACIAL_TYPE_LRGBOT
+	|| nRace == RACIAL_TYPE_DROID
+	|| nRace == RACIAL_TYPE_OOZE
+	|| nRace == RACIAL_TYPE_SHAPECHANGER
+	|| nRace == RACIAL_TYPE_CYBORG
+	|| nRace == RACIAL_TYPE_ELEMENTAL 
+	|| nRace == RACIAL_TYPE_UNDEAD)	   
+    {
+        SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+    }   
+	
+//:: Can't get this mutation twice.
+	if(GetHasTemplate(MUT_PARALYTIC_TOUCH, oPC)) 
+	{
+		SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+	}
+
+}
\ No newline at end of file
diff --git a/_content/ga_scripts/mut_t_photogen.ncs b/_content/ga_scripts/mut_t_photogen.ncs
new file mode 100644
index 0000000000000000000000000000000000000000..294898a67f8924170ec669d32640ce32854ddd1e
GIT binary patch
literal 5611
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

literal 0
HcmV?d00001

diff --git a/_content/ga_scripts/mut_t_photogen.nss b/_content/ga_scripts/mut_t_photogen.nss
new file mode 100644
index 00000000..766d143c
--- /dev/null
+++ b/_content/ga_scripts/mut_t_photogen.nss
@@ -0,0 +1,58 @@
+//::///////////////////////////////////////////////////////////////////////////
+//:: Name		Photogenesis template test script
+//:: FileName	mut_t_photogen.nss
+//:: Copyright	(c) 2022 NWNDS
+//::///////////////////////////////////////////////////////////////////////////
+/*
+Photogenesis (Physical / Plant)
+The mutant is able to generate a tremendously bright flash of light from a specific part of his body (hands, eyes, hair, etc.) chosen by
+the player. This flash affects every creature (including Live Metal) within 30 feet (60’ in the dark) who fails a Reflex save. (DC = 10 +
+MPS mod + ½ level.) If the targets were looking in the direction of the mutant, they are blinded for 1d4+MPS rounds; otherwise (unless
+specifically warned about the flash) they are dazzled for 1 round. The mutant cannot be blinded or dazzled by bright light. He can store
+enough light for three flashes, but it takes two hours to regenerate a used flash. As an alternative to the sudden light discharge, the
+mutant can use up a flash to glow with a light equal to normal daylight for 10 + MPS modifier rounds. The glow this creates illuminates
+a 30’ radius area
+
+[Daylight?]
+
+
+*/
+//:://////////////////////////////////////////////////////////////////////////
+//:: Created By: Jaysyn
+//:: Created On: 22/03/21
+//:://////////////////////////////////////////////////////////////////////////
+
+
+#include "prc_alterations"
+#include "prc_inc_template"
+#include "prc_racial_const"
+
+void main()
+{
+    object oPC = OBJECT_SELF;
+    SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_CONTINUE);	
+
+//:: Any living genotype except pure strain humans, oozes, cyborgs & shapechangers
+    int nRace = MyPRCGetRacialType(oPC);
+    if(nRace == RACIAL_TYPE_CONSTRUCT
+	|| nRace == RACIAL_TYPE_SMLBOT 
+	|| nRace == RACIAL_TYPE_MEDBOT
+	|| nRace == RACIAL_TYPE_LRGBOT
+	|| nRace == RACIAL_TYPE_DROID
+	|| nRace == RACIAL_TYPE_OOZE
+	|| nRace == RACIAL_TYPE_PSH
+	|| nRace == RACIAL_TYPE_SHAPECHANGER
+	|| nRace == RACIAL_TYPE_CYBORG
+	|| nRace == RACIAL_TYPE_ELEMENTAL 
+	|| nRace == RACIAL_TYPE_UNDEAD)	   
+    {
+        SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+    }    
+	
+//:: Can't get this mutation twice.
+	if(GetHasTemplate(MUT_PHOTOGENESIS, oPC)) 
+	{
+		SetExecutedScriptReturnValue(X2_EXECUTE_SCRIPT_END);
+	}
+
+}
\ No newline at end of file