Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SBAsset6 ò´familiars now glow
- [core]
- repositoryformatversion = 0
- filemode = false
- bare = false
- logallrefupdates = true
- symlinks = false
- ignorecase = true
- [remote "origin"]
- url = https://github.com/sayterdarkwynd/FrackinRaces.git
- fetch = +refs/heads/*:refs/remotes/origin/*
- [branch "master"]
- remote = origin
- merge = refs/heads/master
- Unnamed repository; edit this file 'description' to name the repository.
- 1f70ae36b156d447137d5fcb8aabd33d1b80ba6c branch 'master' of https://github.com/sayterdarkwynd/FrackinRaces
- ref: refs/heads/master
- #!/bin/sh
- #
- # An example hook script to check the commit log message taken by
- # applypatch from an e-mail message.
- #
- # The hook should exit with non-zero status after issuing an
- # appropriate message if it wants to stop the commit. The hook is
- # allowed to edit the commit message file.
- #
- # To enable this hook, rename this file to "applypatch-msg".
- . git-sh-setup
- commitmsg="$(git rev-parse --git-path hooks/commit-msg)"
- test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"}
- :
- #!/bin/sh
- #
- # An example hook script to check the commit log message.
- # Called by "git commit" with one argument, the name of the file
- # that has the commit message. The hook should exit with non-zero
- # status after issuing an appropriate message if it wants to stop the
- # commit. The hook is allowed to edit the commit message file.
- #
- # To enable this hook, rename this file to "commit-msg".
- # Uncomment the below to add a Signed-off-by line to the message.
- # Doing this in a hook is a bad idea in general, but the prepare-commit-msg
- # hook is more suited to it.
- #
- # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
- # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
- # This example catches duplicate Signed-off-by lines.
- test "" = "$(grep '^Signed-off-by: ' "$1" |
- sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
- echo >&2 Duplicate Signed-off-by lines.
- exit 1
- }
- #!/bin/sh
- #
- # An example hook script to prepare a packed repository for use over
- # dumb transports.
- #
- # To enable this hook, rename this file to "post-update".
- exec git update-server-info
- #!/bin/sh
- #
- # An example hook script to verify what is about to be committed
- # by applypatch from an e-mail message.
- #
- # The hook should exit with non-zero status after issuing an
- # appropriate message if it wants to stop the commit.
- #
- # To enable this hook, rename this file to "pre-applypatch".
- . git-sh-setup
- precommit="$(git rev-parse --git-path hooks/pre-commit)"
- test -x "$precommit" && exec "$precommit" ${1+"$@"}
- :
- #!/bin/sh
- #
- # An example hook script to verify what is about to be committed.
- # Called by "git commit" with no arguments. The hook should
- # exit with non-zero status after issuing an appropriate message if
- # it wants to stop the commit.
- #
- # To enable this hook, rename this file to "pre-commit".
- if git rev-parse --verify HEAD >/dev/null 2>&1
- then
- against=HEAD
- else
- # Initial commit: diff against an empty tree object
- against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
- fi
- # If you want to allow non-ASCII filenames set this variable to true.
- allownonascii=$(git config --bool hooks.allownonascii)
- # Redirect output to stderr.
- exec 1>&2
- # Cross platform projects tend to avoid non-ASCII filenames; prevent
- # them from being added to the repository. We exploit the fact that the
- # printable range starts at the space character and ends with tilde.
- if [ "$allownonascii" != "true" ] &&
- # Note that the use of brackets around a tr range is ok here, (it's
- # even required, for portability to Solaris 10's /usr/bin/tr), since
- # the square bracket bytes happen to fall in the designated range.
- test $(git diff --cached --name-only --diff-filter=A -z $against |
- LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
- then
- cat <<\EOF
- Error: Attempt to add a non-ASCII file name.
- This can cause problems if you want to work with people on other platforms.
- To be portable it is advisable to rename the file.
- If you know what you are doing you can disable this check using:
- git config hooks.allownonascii true
- EOF
- exit 1
- fi
- # If there are whitespace errors, print the offending file names and fail.
- exec git diff-index --check --cached $against --
- #!/bin/sh
- # An example hook script to verify what is about to be pushed. Called by "git
- # push" after it has checked the remote status, but before anything has been
- # pushed. If this script exits with a non-zero status nothing will be pushed.
- #
- # This hook is called with the following parameters:
- #
- # $1 -- Name of the remote to which the push is being done
- # $2 -- URL to which the push is being done
- #
- # If pushing without using a named remote those arguments will be equal.
- #
- # Information about the commits which are being pushed is supplied as lines to
- # the standard input in the form:
- #
- # <local ref> <local sha1> <remote ref> <remote sha1>
- #
- # This sample shows how to prevent push of commits where the log message starts
- # with "WIP" (work in progress).
- remote="$1"
- url="$2"
- z40=0000000000000000000000000000000000000000
- while read local_ref local_sha remote_ref remote_sha
- do
- if [ "$local_sha" = $z40 ]
- then
- # Handle delete
- :
- else
- if [ "$remote_sha" = $z40 ]
- then
- # New branch, examine all commits
- range="$local_sha"
- else
- # Update to existing branch, examine new commits
- range="$remote_sha..$local_sha"
- fi
- # Check for WIP commit
- commit=`git rev-list -n 1 --grep '^WIP' "$range"`
- if [ -n "$commit" ]
- then
- echo >&2 "Found WIP commit in $local_ref, not pushing"
- exit 1
- fi
- fi
- done
- exit 0
- #!/bin/sh
- #
- # Copyright (c) 2006, 2008 Junio C Hamano
- #
- # The "pre-rebase" hook is run just before "git rebase" starts doing
- # its job, and can prevent the command from running by exiting with
- # non-zero status.
- #
- # The hook is called with the following parameters:
- #
- # $1 -- the upstream the series was forked from.
- # $2 -- the branch being rebased (or empty when rebasing the current branch).
- #
- # This sample shows how to prevent topic branches that are already
- # merged to 'next' branch from getting rebased, because allowing it
- # would result in rebasing already published history.
- publish=next
- basebranch="$1"
- if test "$#" = 2
- then
- topic="refs/heads/$2"
- else
- topic=`git symbolic-ref HEAD` ||
- exit 0 ;# we do not interrupt rebasing detached HEAD
- fi
- case "$topic" in
- refs/heads/??/*)
- ;;
- *)
- exit 0 ;# we do not interrupt others.
- ;;
- esac
- # Now we are dealing with a topic branch being rebased
- # on top of master. Is it OK to rebase it?
- # Does the topic really exist?
- git show-ref -q "$topic" || {
- echo >&2 "No such branch $topic"
- exit 1
- }
- # Is topic fully merged to master?
- not_in_master=`git rev-list --pretty=oneline ^master "$topic"`
- if test -z "$not_in_master"
- then
- echo >&2 "$topic is fully merged to master; better remove it."
- exit 1 ;# we could allow it, but there is no point.
- fi
- # Is topic ever merged to next? If so you should not be rebasing it.
- only_next_1=`git rev-list ^master "^$topic" ${publish} | sort`
- only_next_2=`git rev-list ^master ${publish} | sort`
- if test "$only_next_1" = "$only_next_2"
- then
- not_in_topic=`git rev-list "^$topic" master`
- if test -z "$not_in_topic"
- then
- echo >&2 "$topic is already up-to-date with master"
- exit 1 ;# we could allow it, but there is no point.
- else
- exit 0
- fi
- else
- not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"`
- /usr/bin/perl -e '
- my $topic = $ARGV[0];
- my $msg = "* $topic has commits already merged to public branch:\n";
- my (%not_in_next) = map {
- /^([0-9a-f]+) /;
- ($1 => 1);
- } split(/\n/, $ARGV[1]);
- for my $elem (map {
- /^([0-9a-f]+) (.*)$/;
- [$1 => $2];
- } split(/\n/, $ARGV[2])) {
- if (!exists $not_in_next{$elem->[0]}) {
- if ($msg) {
- print STDERR $msg;
- undef $msg;
- }
- print STDERR " $elem->[1]\n";
- }
- }
- ' "$topic" "$not_in_next" "$not_in_master"
- exit 1
- fi
- exit 0
- ################################################################
- This sample hook safeguards topic branches that have been
- published from being rewound.
- The workflow assumed here is:
- * Once a topic branch forks from "master", "master" is never
- merged into it again (either directly or indirectly).
- * Once a topic branch is fully cooked and merged into "master",
- it is deleted. If you need to build on top of it to correct
- earlier mistakes, a new topic branch is created by forking at
- the tip of the "master". This is not strictly necessary, but
- it makes it easier to keep your history simple.
- * Whenever you need to test or publish your changes to topic
- branches, merge them into "next" branch.
- The script, being an example, hardcodes the publish branch name
- to be "next", but it is trivial to make it configurable via
- $GIT_DIR/config mechanism.
- With this workflow, you would want to know:
- (1) ... if a topic branch has ever been merged to "next". Young
- topic branches can have stupid mistakes you would rather
- clean up before publishing, and things that have not been
- merged into other branches can be easily rebased without
- affecting other people. But once it is published, you would
- not want to rewind it.
- (2) ... if a topic branch has been fully merged to "master".
- Then you can delete it. More importantly, you should not
- build on top of it -- other people may already want to
- change things related to the topic as patches against your
- "master", so if you need further changes, it is better to
- fork the topic (perhaps with the same name) afresh from the
- tip of "master".
- Let's look at this example:
- o---o---o---o---o---o---o---o---o---o "next"
- / / / /
- / a---a---b A / /
- / / / /
- / / c---c---c---c B /
- / / / \ /
- / / / b---b C \ /
- / / / / \ /
- ---o---o---o---o---o---o---o---o---o---o---o "master"
- A, B and C are topic branches.
- * A has one fix since it was merged up to "next".
- * B has finished. It has been fully merged up to "master" and "next",
- and is ready to be deleted.
- * C has not merged to "next" at all.
- We would want to allow C to be rebased, refuse A, and encourage
- B to be deleted.
- To compute (1):
- git rev-list ^master ^topic next
- git rev-list ^master next
- if these match, topic has not merged in next at all.
- To compute (2):
- git rev-list master..topic
- if this is empty, it is fully merged to "master".
- #!/bin/sh
- #
- # An example hook script to prepare the commit log message.
- # Called by "git commit" with the name of the file that has the
- # commit message, followed by the description of the commit
- # message's source. The hook's purpose is to edit the commit
- # message file. If the hook fails with a non-zero status,
- # the commit is aborted.
- #
- # To enable this hook, rename this file to "prepare-commit-msg".
- # This hook includes three examples. The first comments out the
- # "Conflicts:" part of a merge commit.
- #
- # The second includes the output of "git diff --name-status -r"
- # into the message, just before the "git status" output. It is
- # commented because it doesn't cope with --amend or with squashed
- # commits.
- #
- # The third example adds a Signed-off-by line to the message, that can
- # still be edited. This is rarely a good idea.
- case "$2,$3" in
- merge,)
- /usr/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;;
- # ,|template,)
- # /usr/bin/perl -i.bak -pe '
- # print "\n" . `git diff --cached --name-status -r`
- # if /^#/ && $first++ == 0' "$1" ;;
- *) ;;
- esac
- # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
- # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
- #!/bin/sh
- #
- # An example hook script to block unannotated tags from entering.
- # Called by "git receive-pack" with arguments: refname sha1-old sha1-new
- #
- # To enable this hook, rename this file to "update".
- #
- # Config
- # ------
- # hooks.allowunannotated
- # This boolean sets whether unannotated tags will be allowed into the
- # repository. By default they won't be.
- # hooks.allowdeletetag
- # This boolean sets whether deleting tags will be allowed in the
- # repository. By default they won't be.
- # hooks.allowmodifytag
- # This boolean sets whether a tag may be modified after creation. By default
- # it won't be.
- # hooks.allowdeletebranch
- # This boolean sets whether deleting branches will be allowed in the
- # repository. By default they won't be.
- # hooks.denycreatebranch
- # This boolean sets whether remotely creating branches will be denied
- # in the repository. By default this is allowed.
- #
- # --- Command line
- refname="$1"
- oldrev="$2"
- newrev="$3"
- # --- Safety check
- if [ -z "$GIT_DIR" ]; then
- echo "Don't run this script from the command line." >&2
- echo " (if you want, you could supply GIT_DIR then run" >&2
- echo " $0 <ref> <oldrev> <newrev>)" >&2
- exit 1
- fi
- if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
- echo "usage: $0 <ref> <oldrev> <newrev>" >&2
- exit 1
- fi
- # --- Config
- allowunannotated=$(git config --bool hooks.allowunannotated)
- allowdeletebranch=$(git config --bool hooks.allowdeletebranch)
- denycreatebranch=$(git config --bool hooks.denycreatebranch)
- allowdeletetag=$(git config --bool hooks.allowdeletetag)
- allowmodifytag=$(git config --bool hooks.allowmodifytag)
- # check for no description
- projectdesc=$(sed -e '1q' "$GIT_DIR/description")
- case "$projectdesc" in
- "Unnamed repository"* | "")
- echo "*** Project description file hasn't been set" >&2
- exit 1
- ;;
- esac
- # --- Check types
- # if $newrev is 0000...0000, it's a commit to delete a ref.
- zero="0000000000000000000000000000000000000000"
- if [ "$newrev" = "$zero" ]; then
- newrev_type=delete
- else
- newrev_type=$(git cat-file -t $newrev)
- fi
- case "$refname","$newrev_type" in
- refs/tags/*,commit)
- # un-annotated tag
- short_refname=${refname##refs/tags/}
- if [ "$allowunannotated" != "true" ]; then
- echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
- echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
- exit 1
- fi
- ;;
- refs/tags/*,delete)
- # delete tag
- if [ "$allowdeletetag" != "true" ]; then
- echo "*** Deleting a tag is not allowed in this repository" >&2
- exit 1
- fi
- ;;
- refs/tags/*,tag)
- # annotated tag
- if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1
- then
- echo "*** Tag '$refname' already exists." >&2
- echo "*** Modifying a tag is not allowed in this repository." >&2
- exit 1
- fi
- ;;
- refs/heads/*,commit)
- # branch
- if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then
- echo "*** Creating a branch is not allowed in this repository" >&2
- exit 1
- fi
- ;;
- refs/heads/*,delete)
- # delete branch
- if [ "$allowdeletebranch" != "true" ]; then
- echo "*** Deleting a branch is not allowed in this repository" >&2
- exit 1
- fi
- ;;
- refs/remotes/*,commit)
- # tracking branch
- ;;
- refs/remotes/*,delete)
- # delete tracking branch
- if [ "$allowdeletebranch" != "true" ]; then
- echo "*** Deleting a tracking branch is not allowed in this repository" >&2
- exit 1
- fi
- ;;
- *)
- # Anything else (is there anything else?)
- echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
- exit 1
- ;;
- esac
- # --- Finished
- exit 0
- DIRC ÂW’gjXW¬Þk,…[ ¤ gC6°ÀŒø§cR:\6ÉÅ#Ï Þ) .metadata W’í,ûÌW™áœ ¤ ¥~Æã…(Fkœ8=Áøg8‚,1¬‘
- _previewimage W¦¢N#2©°W‡ÓJ ¤ wž87qçïÚ’¹…”«›ìLl 0animations/statuseffects/heal/darkheal.animation W¦¢N# xW‡ÓJ ¤ I)ÚlËêðß¿Àt«tÇÓAù†Ù -animations/statuseffects/heal/darkheal.frames W¦¢N%dl W‡ÓJ ¤ 9¥Wkw
- Ó#ð$ûf-ßjiW
- *animations/statuseffects/heal/darkheal.png W¦¢N#QBäW‡ÓJ ¤ x<)2|øbM 6UsÚyÞŒzçmÜ 1animations/statuseffects/heal/darkheal2.animation W¦¢N#˨W‡ÓJ ¤ I)ÚlËêðß¿Àt«tÇÓAù†Ù .animations/statuseffects/heal/darkheal2.frames W¦¢N%€§”W‡ÓJ ¤ ýªâ“³IZH6-w}µ9šõ¤´»£ +animations/statuseffects/heal/darkheal2.png W¦¢N#(W‡ÓJ ¤ xDcu½g‡NbÀ9ˆ¿Ô“)Oä 1animations/statuseffects/heal/lightheal.animation W¦¢N#êШW‡ÓJ ¤ I)ÚlËêðß¿Àt«tÇÓAù†Ù .animations/statuseffects/heal/lightheal.frames W¦¢N##äW‡ÓJ ¤ :ÑÐx&mBT´Ô냻‰³:Y=Ép +animations/statuseffects/heal/lightheal.png W¢SÂu°W§þÀÁDt ¤ pQ¤®™×Ð}÷xלôYC %items/active/shields/shield.animation W¢6è%/¬W©7Ø!V ¤ #˜ážS#±È·
- ¸{·}î¤ ¸<C items/active/shields/shield.lua W’gjþxW¢5T1Ö™ô ¤ }¥±yt® aEj,º³/= player.config.patch W’gj5™lW«M$8ˆkØ ¤ ,¼ª>‚T†Ìû§>“ÅÕÔ½ scripts/raceEffects.lua W£ëø;ŠPW§ùé»
- ” ¤ o=yžxè˜Ó½ª
- “C¼3Û/mý species/apex.species.patch W©2 Ì_ˆW©3Ä4Qçt ¤ #¢òÒ±<)š‹²>chR|_mà species/avali.species.patch W£ð ‹‡dW©3ä$Ä¢Ä ¤ ©$¡Bv®FIroõ¤$sK0k species/avian.species.patch W£ð"ò”W«Fß ëÅ` ¤ Ã'&˜åN¾òà>‹=8(Q”° species/floran.species.patch W£ð"ò”W©8®3¨0 ¤ ðãÿ0ìCï°¾«ý+Ìnñ¨ species/glitch.species.patch W£ð"ò”W©6¡ š€ ¤ †À\׺–UĸµÒºök ô‰–Jƒ species/human.species.patch W£ð ‹‡dW©8‘)Ó\` ¤ ׇÂ
- '_‚ƒW‹ô"ƒ
- ¬{ species/hylotl.species.patch W£ð"ò”W£üK‚U¬ ¤ ³%ReÇÿÔ²ãruz?AÏû»Ð‰ì¹ species/novakid.species.patch W«Jkù&°W«JŠ9k€ ¤ קœ/RX:¹ç/∉AAÔ³X 3stats/effects/camouflage/camouflage100.statuseffect W«Je~!ÜW«J
- ìŒ ¤ ÚQôÄ‹÷«ë§þ ÞÒo:-
- 3 2stats/effects/camouflage/camouflage85.statuseffect W«Jkù&°W«J—1±X ¤ Ú®Jôéä{3‰@•.ÓДlƒ)ž 2stats/effects/camouflage/camouflage99.statuseffect W›´ª]/4W›Žõb¥˜ ¤ Z“ßÔRŸ²@¹¢ªèv3>Æ" stats/effects/crit/backstab.lua WšÝ®.(püW›Žõb¥˜ ¤ Z“ßÔRŸ²@¹¢ªèv3>Æ" !stats/effects/crit/critchance.lua W›´ª]/4W›Žõb¥˜ ¤ Z“ßÔRŸ²@¹¢ªèv3>Æ" "stats/effects/crit/evadechance.lua W›ÝL W¢Ù7Šƒ ¤ ˜£<;~Ø.!$cyß…¨”ÓŽ]Rƒ 'stats/effects/crit/shieldblockregen.lua W’gj«æèV§e$ ¤ :˜pFUZj0‰a³%tÏ–B 4stats/effects/damageboost/damagebonusavian.animation W’gjøÒ´W‰X‹ Ø ¤ ðO®IKk®{.b 2¼~›ÀÅ .stats/effects/damageboost/damagebonusavian.lua W’gjjXWköD'Sç4 ¤ í;Ýë¸sŽÇ™ß6€¯yâ=øÎ 7stats/effects/damageboost/damagebonusavian.statuseffect W’gjU¯\WlŽwü ¤ í²8#íÕÏϱÍvÀ3xækYô 7stats/effects/damageboost/damagebonusfelin.statuseffect W”ÕÂW‡ÓJ ¤ ΂Ÿ…¤÷ºM!("5WŸP¾ð½W 1stats/effects/defenseboost/defenseboosthylotl.lua W”ÕÂW”Š´Ä ¤ áhGl±6s)SÅ0UuÛ4Œ( 8stats/effects/defenseboost/hylotlunderwater.statuseffect W«Lõ#÷þàW«N29é ¤ —Nfó7B!:ð?„Â6:KzC 1stats/effects/familiarglow/familiarglow.animation W«Lõ#à‘œW«M4<iä ¤ ’ÒlK8jCÂdJ|*ªmTWÉê 4stats/effects/familiarglow/familiarglow.statuseffect W£Ì’ùÛ(W£ÖW/Òí ¤ ãºX–;;‚oÙÇÈøÌž•‰‹là *stats/effects/food/carnivorefood.animation W£Ì’ +xW§/ÿ&¦” ¤ 1Ÿc .ÙåeØ¥¹5-Þ'Sí¹ $stats/effects/food/carnivorefood.lua W£Ì’JôW¤îÌ6A¶Ì ¤ ,{tí{¯Ôï}§,Ký°Zº -stats/effects/food/carnivorefood.statuseffect W£ÎY$BˆW£Ö\ÓÆ´ ¤ ãºX–;;‚oÙÇÈøÌž•‰‹là 0stats/effects/food/carnivorefoodcooked.animation W£ÎYBÛ¼W¥ 9FE ¤ Œ‡Ó¾IYUåÔO¼SMA/~F *stats/effects/food/carnivorefoodcooked.lua W£ÎYpÀôW¤îÏ” ¤ >“—Ö´åpyFŽL¤j\
- 3 3stats/effects/food/carnivorefoodcooked.statuseffect W§2V+‘a<W§qT·X ¤ äD]ëi¨ÇÃ=3•’8èâ§ü %stats/effects/food/robofood.animation W§2OþíÐW§qî
- :Ð ¤
- Øí0¬rR€@Îø—
- ©Sé#ËdÈÔ stats/effects/food/robofood.lua W§2\6dàW§i^ÎûÀ ¤ ¤ 3x6ÁWɪjêÉÏ×ÛªÌc (stats/effects/food/robofood.statuseffect W§‹(ótW§iWŠÉ ¤ ¥àX]”šõQzJâvÙªïó‚Q )stats/effects/food/robofood2.statuseffect W§‹(/ °W§iQ:Ç·< ¤ ¤O®lzú¨þGÊÇo·Ôö®s¼Ï )stats/effects/food/robofood3.statuseffect W¡J!²èW‡ÓJ ¤ Å©½¬é ~`0j”ÐÉ:d— 0stats/effects/fu_immunityeffects/beeimmunity.lua W¡J}€W‡ÓJ ¤ {µÇóò´Ì‚q’Ó¦vàÄoÒøQ 9stats/effects/fu_immunityeffects/beeimmunity.statuseffect W¡J8¦°W‡ÓJ ¤ —L¿Üžiƒ…Ý$ÙÊg ¿›©È 5stats/effects/fu_immunityeffects/beestingImmunity.lua W¡J›™W‡ÓJ ¤ …ê[bÅBq¿Ïƒ×Út :Æ[
- >stats/effects/fu_immunityeffects/beestingImmunity.statuseffect W¡JW@HW“Î 6ljd ¤ Çå$
- ‘³Œxèàœ>¬y» )[ܹ 4stats/effects/fu_immunityeffects/biooozeimmunity.lua W¡J²0W‡ÓJ ¤ ƒì ÊVíÝÌ¢¤·µDôÙ0{ =stats/effects/fu_immunityeffects/biooozeimmunity.statuseffect W¡JfŒLW‡ÓJ ¤ —ñøðÅ¿W›J6,æêÉÒ`&+Ì 5stats/effects/fu_immunityeffects/blacktarimmunity.lua W¡JÑ) W‡ÓJ ¤ …ö¸€X-Š‘ Ϧ¥M¥àÒÂÒ/ >stats/effects/fu_immunityeffects/blacktarimmunity.statuseffect W¡J}€W‡ÓJ ¤ ˜
- ò'eT!a6ÞL÷ìø4ΠÔ 1stats/effects/fu_immunityeffects/coldimmunity.lua W¡Jè W‡ÓJ ¤ }®´zóM#Ýá3ˆ;½Z"˜0ö :stats/effects/fu_immunityeffects/coldimmunity.statuseffect W¡J”r°W‡ÓJ ¤ bظ³i¬µ ¢…ûý^"³‰Wú@ -stats/effects/fu_immunityeffects/fedhoney.lua W¡JÿœW‡ÓJ ¤ ”ÒŒ"lö(hM^³¿Ë³ØÜÆ2ãm 6stats/effects/fu_immunityeffects/fedhoney.statuseffect W¡J«eLW‡ÓJ ¤ Êq›Z°Ñú#ª²^‡ù±íÓèu)' :stats/effects/fu_immunityeffects/ffextremecoldimmunity.lua W¡JÿÈW‡ÓJ ¤ Û’¹7À§`ÿš-/̘Q±qÓ Cstats/effects/fu_immunityeffects/ffextremecoldimmunity.statuseffect W¡J4˜üW‡ÓJ ¤ ž—tíw®†:ØZèA×[>Ž Gstats/effects/fu_immunityeffects/ffextremecoldimmunityicon.statuseffect W¡JÉþäW‡ÓJ ¤ Êêü/2aAF@ÐoÆá¿]/¥É :stats/effects/fu_immunityeffects/ffextremeheatimmunity.lua W¡JK(W‡ÓJ ¤ לθžh ZhwÏöì{ÜvR Cstats/effects/fu_immunityeffects/ffextremeheatimmunity.statuseffect W¡Jr:TW‡ÓJ ¤ žóŠ†MÎwDY9MIì§rÌá4Ê Gstats/effects/fu_immunityeffects/ffextremeheatimmunityicon.statuseffect W¡JévÀW‡ÓJ ¤ ÔG”ŸW XÊ å%%[';s;¥ ?stats/effects/fu_immunityeffects/ffextremeradiationimmunity.lua W¡J½W‡ÓJ ¤ è
- ?t‚:¹Ã½îCÜýxÌãbÃè Hstats/effects/fu_immunityeffects/ffextremeradiationimmunity.statuseffect W¡JŸäW‡ÓJ ¤ ¬…›šß÷6©¦²´É‰…z Lstats/effects/fu_immunityeffects/ffextremeradiationimmunityicon.statuseffect W¡/î:TW“η*¬ø ¤ ™\Ï%QÃm¼BÓ kˆDø½=M=r 1stats/effects/fu_immunityeffects/fireimmunity.lua W¡/°Ÿ<W“η*Ã$ ¤ ‚7éek~hP:tSêRììÕi :stats/effects/fu_immunityeffects/fireimmunity.statuseffect W¡J&œDW‡ÓJ ¤ ˜¦4EAŸ;ÖvVùýZ¥Ï>ð´ 6stats/effects/fu_immunityeffects/fumudslowimmunity.lua W¡JÜ?¼W‡ÓJ ¤ ‡F„FÝà„=[Ú±»¡3Wpµ ?stats/effects/fu_immunityeffects/fumudslowimmunity.statuseffect W¡J=,W‡ÓJ ¤ ˜7fÎÙU>WëJÈx·Î{igÈ09 1stats/effects/fu_immunityeffects/heatimmunity.lua W¡Jó3èW‡ÓJ ¤ }yâÒ½‰.÷&Ø£pˆfQ_Nè :stats/effects/fu_immunityeffects/heatimmunity.statuseffect W¡J\,ÄW‡ÓJ ¤ ˜J”f6dòæÔ¡gv¦+ˆ¯{ 6stats/effects/fu_immunityeffects/honeyslowimmunity.lua W¡JάW‡ÓJ ¤ ‡$tŒlô#ª±×ŸíÖ5 1 ?stats/effects/fu_immunityeffects/honeyslowimmunity.statuseffect W¡Js@W‡ÓJ ¤ –Ôû§©‚lSÁI’ŒÂÈñ
- ^M 4stats/effects/fu_immunityeffects/iceslipimmunity.lua W¡J(¾ŒW‡ÓJ ¤ ƒ•ï0M`z0ûDð\ˆ•UÅ&åÁØ =stats/effects/fu_immunityeffects/iceslipimmunity.statuseffect W¡Jä¬W‡ÓJ ¤ à>Ö‹$î¸dvV7Ìs{¹˜¬ <stats/effects/fu_immunityeffects/immunesting/immunesting.lua W¡JàW‡ÓJ ¤ Ì¥{s)2pùvüczð(;‡˜~dl Estats/effects/fu_immunityeffects/immunesting/immunesting.statuseffect W¡/qW‡ÓJ ¤ —ò.~‹ršMÉžK?•Ù¸ 5stats/effects/fu_immunityeffects/insanityimmunity.lua W¡/Ç—´W‡ÓJ ¤ …ˆ äǹAø~KÆ%M´¼Îñ+B^ >stats/effects/fu_immunityeffects/insanityimmunity.statuseffect W¡JÒÔW‡ÓJ ¤ ™cZÕ—V4%†¯pàußWªdw 7stats/effects/fu_immunityeffects/jungleslowimmunity.lua W¡Jeò„W‡ÓJ ¤ ˆ”åaÕlòæC:è²ÐÏ{˜½ @stats/effects/fu_immunityeffects/jungleslowimmunity.statuseffect W¡J0ÖHW‡ÓJ ¤ “àS#Æ#¹×^¶ÿt™¯/¯‡¦‡L 1stats/effects/fu_immunityeffects/lavaimmunity.lua W¡J„‹¸W‡ÓJ ¤ |=ROŒvõ]ÀfñúG™ú¼gpª :stats/effects/fu_immunityeffects/lavaimmunity.statuseffect W¡JO\W‡ÓJ ¤ Иã'uR´kž«¨åPa1óB ;stats/effects/fu_immunityeffects/liquidnitrogenimmunity.lua W¡J›~¸W‡ÓJ ¤ ‘1 ¼Ý]£ÇæÂ3SÝ ËùàŽ(_À Dstats/effects/fu_immunityeffects/liquidnitrogenimmunity.statuseffect W¡Jˆ*ÜW“Î!ˆoH ¤ ›Ã–´ÜL¤ðžÍ˜‰×ˆ>” 3stats/effects/fu_immunityeffects/poisonimmunity.lua W¡J²qTW“Î!Å ¤ ÍMRcéÇ
- ÎöŠK¿E\× <stats/effects/fu_immunityeffects/poisonimmunity.statuseffect W¡JÉeW‡ÓJ ¤ Ò¨H¡êVz)Ä¥v–5 •ÑËD Fstats/effects/fu_immunityeffects/poisonimmunityspongeweed.statuseffect W¡JŸ' W‡ÓJ ¤ ”P¶µhβ—°k_jüfسñg 2stats/effects/fu_immunityeffects/protoimmunity.lua W¡Jçý$W˜¤ )” ¤ ~Þ‡]˜eíÐ ØgAඵÖè©. ;stats/effects/fu_immunityeffects/protoimmunity.statuseffect W¡J½È@W‡ÓJ ¤ ’׈Ž¯ñ‰c r¤/t¿@”94¢8 0stats/effects/fu_immunityeffects/pusimmunity.lua W¡J÷JTW‡ÓJ ¤ Â/”F ÑCµYçó„éØC¿ÞÈ 9stats/effects/fu_immunityeffects/pusimmunity.statuseffect W¡JÔµ W‡ÓJ ¤ œÚÍÚ\¿Bå©òO+Ñ^@Ö…³ :stats/effects/fu_immunityeffects/radiationburnimmunity.lua W¡J=TW‡ÓJ ¤ }Â’›qÛ@{¯Õ€/û2!qs Cstats/effects/fu_immunityeffects/radiationburnimmunity.statuseffect W¡JóN4W‡ÓJ ¤ ÊÒ…1c›-7IwÍè̤9 6stats/effects/fu_immunityeffects/radiationimmunity.lua W¡J%2¬W‡ÓJ ¤ àpmlsÝòý’ø/ ÁË,È å ?stats/effects/fu_immunityeffects/radiationimmunity.statuseffect W¡JKo¼W‡ÓJ ¤ £pWÖ\âÜ©ˆ4ÈÅÓ½#Cž Cstats/effects/fu_immunityeffects/radiationimmunityicon.statuseffect W¡J
- E€W‡ÓJ ¤ ™Wm¹ç—4f²qÞš'¤AÓZ)‚ 7stats/effects/fu_immunityeffects/slimestickimmunity.lua W¡JbcèW‡ÓJ ¤ ‰8Ýmj:ìþ1Df=òà_%da @stats/effects/fu_immunityeffects/slimestickimmunity.statuseffect W¡J)Y\W‡ÓJ ¤ ˜wd_»gW€(2¦íM=ú¿¥œÑ… 6stats/effects/fu_immunityeffects/slushslowimmunity.lua W¡JW‡ÓJ ¤ †õãŽNj«IôÂmìDð< ! ?stats/effects/fu_immunityeffects/slushslowimmunity.statuseffect W¡J@E¸W‡ÓJ ¤ —…<aá>
- -æ‰ñ àºLÈsÃŽ ä 5stats/effects/fu_immunityeffects/snowslowimmunity.lua W¡J˜ÜW‡ÓJ ¤ „Žõ&ò
- ÂMÆÁãøö¾æl«÷‡ >stats/effects/fu_immunityeffects/snowslowimmunity.statuseffect W¡Jf€W‡ÓJ ¤ ˜´Èå)(õµyeÑväË4ñÜ7ç 6stats/effects/fu_immunityeffects/spiderwebimmunity.lua W¡J¶šäW‡ÓJ ¤ ‡¼×˲4N’þk0DZ…”hCè½ ?stats/effects/fu_immunityeffects/spiderwebimmunity.statuseffect W’gjm8,W£nI€ËL ¤ Æk±
- ä‡+€Œ° ‡N¡1MË -stats/effects/fu_racialabilities/raceapex.lua W’gj› W§ù¶DP ¤ “54íŽ]´ZÜFúªò¡¹õG[ 6stats/effects/fu_racialabilities/raceapex.statuseffect W’gj¹apW«G`ÕMØ ¤ Ÿø6Í]Â!p)]úOrt›…QÛ‡ .stats/effects/fu_racialabilities/raceavali.lua W’gjçH8W©83*P°\ ¤ \Û…ëÇÀÖ/†Î¼ßŽ×/è~¶) 7stats/effects/fu_racialabilities/raceavali.statuseffect W’gj!º3Wl a‰cˆ ¤ 6¤Êú6šm_•¹]v‡ ¹Æ 4stats/effects/fu_racialabilities/raceavian.animation W’gj!÷eàW©Ôçx ¤ 3m燚”˜øßõ…‚
- eQ>'zû .stats/effects/fu_racialabilities/raceavian.lua W’gj"%KW©2K:7z ¤ Gó…Ì/vøâçô•xTmŸÃ$ß 7stats/effects/fu_racialabilities/raceavian.statuseffect W’gj-úˆW¡"5ú0 ¤ 4Œ¶
- Kåvés;¬‘ÆÚdì¿Üƒ /stats/effects/fu_racialabilities/raceavikan.lua W’gj.'þ$W£;W(î ¤ xµ¦ù›Éž†€e='EÓBËbI" 8stats/effects/fu_racialabilities/raceavikan.statuseffect W¡@-ØmÈW¡ç»
- < ¤ à
- Qì»HˆGP¶76U«4ûLÙ 1stats/effects/fu_racialabilities/racefamiliar.lua W¢FàP0W£;U ‚l ¤ |ç†ÒX *âùtVR5ójz¡Ó :stats/effects/fu_racialabilities/racefamiliar.statuseffect W’gj.F—XW¡H–c“Œ ¤ (ªoLQ^jj“•¿Vúu"XId /stats/effects/fu_racialabilities/racefelins.lua W’gj0pN W£;R$Ph ¤ œpú„Òñs|l˜"´ID
- - kZ 8stats/effects/fu_racialabilities/racefelins.statuseffect W’gj0ž@ W£{n¹Hp ¤ ¾2=§×•Y†Ùëò·ÂÜÞ%øÜ 0stats/effects/fu_racialabilities/racefenerox.lua W’gj0½VW£{Š'ôÎ8 ¤ ×¹«!üæKIh]<;Ub„3Í 9stats/effects/fu_racialabilities/racefenerox.statuseffect W’gj0ÛùhW«G)2cªt ¤ =1 ˆÂ,i£î ÂP29‘ / T /stats/effects/fu_racialabilities/racefloran.lua W’gj8j:(W£|/1Z\à ¤ ª{œi?^€^î ³¾ÏÍ
- ¼ñºâ0³ 8stats/effects/fu_racialabilities/racefloran.statuseffect W’gj8–dÌW§ù1¸|” ¤ bŶ)3¨?älì¡ÿ¤Ž¼ /stats/effects/fu_racialabilities/raceglitch.lua W’gj8Ó–W§ù!&Ù,Ø ¤ ªð2iw–åí·Û™ˆÈJå 8stats/effects/fu_racialabilities/raceglitch.statuseffect W’gj9{@W£w)r ¤ 4–—ÑB/”7çq˹»Ç}F^ .stats/effects/fu_racialabilities/racehuman.lua W’gkÌ©LW©57ù0 ¤ ¾’&~)¤$¡D‡$Ç=ÿ3n¨®b 7stats/effects/fu_racialabilities/racehuman.statuseffect W¢QP17OpW¢R6
- Cä ¤ CüS?Ì9i.›§0߆¹0Ù·ø 5stats/effects/fu_racialabilities/racehylotl.animation W’gk¥®¸W¤ºÙ#ûŽ˜ ¤ ÿø’ÆöC(#p ¶Í‚áÆ™„d±¦7 /stats/effects/fu_racialabilities/racehylotl.lua W’gkÓ¤W£uèe`x ¤ «y~v‘øH!j=.ÑñýêGºe 8stats/effects/fu_racialabilities/racehylotl.statuseffect W¡”d»W¢%!•„ ¤ /ÿìy’\•«h¦=‘]–÷÷± 0stats/effects/fu_racialabilities/raceinkling.lua W¡Bž›W£;AC‚€ ¤ ™aU–-
- ì°Šù¹ê+Ï*󸮛 9stats/effects/fu_racialabilities/raceinkling.statuseffect W¡Eš/´µ W§ûò¢Q¨ ¤ Å ìã#Z0Ó¦¢ÇËÀ@¨)ÊE /stats/effects/fu_racialabilities/racekemono.lua W¡EÎ4´W£;{„vX ¤ ´¢Änuœ±5š!<±ÞëŸw ÈQ¼V 8stats/effects/fu_racialabilities/racekemono.statuseffect W’gkÛüW£:]
- ¤ ->
- (šãœ˜.bç–Uàôº 1stats/effects/fu_racialabilities/racekineptic.lua W’gk
- W¬LW£;x%ŒØ ¤ ¸žF8Ìv‡ûŠ»þŽª‹§O è a :stats/effects/fu_racialabilities/racekineptic.statuseffect W¡<¹{0W¡>Èc‹¤ ¤ Øú&]âäÿÕME.|.¾3~ -stats/effects/fu_racialabilities/raceneko.lua W¡Bž›W£;u(n9 ¤ w´Qß8ñ& LÝçïNäîd×9gª 6stats/effects/fu_racialabilities/raceneko.statuseffect W’gk
- …rDW§üì ¤ ƒŸ—QhšÏÛY‘šý¾6¹hRl 0stats/effects/fu_racialabilities/racenovakid.lua W’gk
- ³WàW£vÉ( @ ¤ ÃÕ™¢]9úÖÙOÍ×øæš 9stats/effects/fu_racialabilities/racenovakid.statuseffect W’gk
- á=W¤®s!²Õì ¤ +[¤ºèî•JåmÏ
- `OfÁ¦OH /stats/effects/fu_racialabilities/raceorcana.lua W’gkîÁÜW£;pÀkô ¤ xÑU[V‚ËE
- ŸÏG1ÈòKq 8stats/effects/fu_racialabilities/raceorcana.statuseffect W’gk*TW«Glëb´ ¤ Æ™ 2«'Æaô}Ü^^„#m 0stats/effects/fu_racialabilities/racepeglaci.lua W’gkJû<W£;n¢ä ¤ z@\èÒDe|ΔGÇ_÷çdì
- 9stats/effects/fu_racialabilities/racepeglaci.statuseffect W’gkxt¤W£YD4óõÈ ¤ ŸàvFèhŸ Òw8/Å{=Ðú .stats/effects/fu_racialabilities/raceponex.lua W’gk&€¶\W£;k1âcì ¤ vôáwá8@,ìÛ>Ýa&˜²É”Ë 7stats/effects/fu_racialabilities/raceponex.statuseffect W¡>Î5eÈW£@ *=´ ¤ q÷{Ì9sµîc'¨Ú¯<§DLN¨ /stats/effects/fu_racialabilities/racesergal.lua W¡Bž›W£;i™hÔ ¤ :C†ÖÜãr`³#(4Ž¼ ‚u 8stats/effects/fu_racialabilities/racesergal.statuseffect W¡!ï&ðW¡B;&‘š0 ¤ õf–1mÂszg-ßä•ÀL13;Z 0stats/effects/fu_racialabilities/racevespoid.lua W¡Bž›W£;f zª ¤ %~#pžNPŠ¨Â±Ó¢¾!‡£F 9stats/effects/fu_racialabilities/racevespoid.statuseffect W’gk3ÄqÈW¢•90a€ ¤ ï)çâS½§|¸Z~ŠÚc5£#G .stats/effects/fu_racialabilities/raceviera.lua W’gk3òZ W£;cvø ¤ v!9G:>Îcà"1U–<¿a© 7stats/effects/fu_racialabilities/raceviera.statuseffect W¡Bl }1W¡EI/Í` ¤ ú½½óCûÓN´ë“j´ ÔX€€ /stats/effects/fu_racialabilities/racevulpes.lua W¡Bž›W£;awÀ ¤ —”*dŠ-‹zT!ëB-@ 5ÿ‘ 8stats/effects/fu_racialabilities/racevulpes.statuseffect W™
- )oP¨WˆSÝ;PH ¤ âu_åÛw[‰î‹v° üåÒ 'stats/effects/jumpboost/jumpboost35.lua W™
- )~Š´W‡ÓJ ¤ ò3½+52›]æÓŠ“ŠB±&çØ 0stats/effects/jumpboost/jumpboost35.statuseffect W’glšðW‡ÓJ ¤ 6¤Êú6šm_•¹]v‡ ¹Æ ,stats/effects/lowgrav/lowgravavian.animation W’gl.8ÔW‡ÓJ ¤ -=vÏ»´êkw-‚ýÿ±–ÿùd &stats/effects/lowgrav/lowgravavian.lua W’gl!fBÌW‡ÓJ ¤ Çùvô2•Ô¡«ÜÄkãñ°7ÔY /stats/effects/lowgrav/lowgravavian.statuseffect W£)f
- ùmHW£)ðªØ¼ ¤ ™ÿŸõ6`E×E.%À‘GÝ º2~# >stats/effects/maxenergyboost/maxenergyboostfloran.statuseffect W’gj"ïu V§e$ ¤ (lžò.%8ôÇœc¦83.„«¥ 2stats/effects/movement/raceavianmovement.animation W’gj$A;PWl&Ý$v‚` ¤ Z8ô9¤TÝ¢ÅþII’º(_o™ç ,stats/effects/movement/raceavianmovement.lua W’gj-ÌC¸Wl#5ï[˜ ¤ ¼j¨vK]¢š9wýUýq‰õ—Xf_ 5stats/effects/movement/raceavianmovement.statuseffect W£WOqøW¦^Ù!¢ ¤ mWºx
- 2)…ª—ðæ˜Ý›f;&à #stats/effects/passive/attrition.lua W£WO<X\W£Ek1¤0 ¤ ugµÊÈ–g¸ÞžÀØÍ5Qécˆ3 ,stats/effects/passive/attrition.statuseffect W£~§·W£éÖ5Ð| ¤ „ͤíù÷U¹aD½uOÑÏs stats/effects/passive/hpedge.lua W£~R.*PHW£~_1k¼ ¤ oéDfÖíø~SÍÚ7›÷AÎø )stats/effects/passive/hpedge.statuseffect W£WO` W¤b,`"ì ¤ -îûísK62÷¨Ymž¬E„_û $stats/effects/passive/metabolism.lua W£WOZ W£Eo6´ ¤ w ¯QÃ,Ñ ž¿M¥Â싱±À -stats/effects/passive/metabolism.statuseffect W£WO,¦ÈW£jq)° ¤ YäÞ 0C‡–Üà५Ÿ™îˆ3Ì &stats/effects/passive/starvingedge.lua W£WOðélW£WH&/r ¤ {Á%7¢Nºà}§p
- tJ×}¥Ñ /stats/effects/passive/starvingedge.statuseffect W’gjœWLà‹#õ¸ ¤ fâüTa«GüfÖ¯f¢íA”h(§¯ 5stats/effects/regeneration/darkregeneration.animation W’gjÔW‰X‹ Ø ¤ å.A…Ò‚·i $£xþlœ¨ˆìw /stats/effects/regeneration/darkregenfenerox.lua W’gjg´W•na4)3$ ¤ ÑþI‚Ûê˜Y7àÖ]Ò§î—Ì 8stats/effects/regeneration/darkregenfenerox.statuseffect W£wôq W¤òl!Å"L ¤ •âc¦C©»;pÁä× þ|ÜG .stats/effects/regeneration/foodregen.animation W£wë¸z°W£z8â¼ ¤
- ðˆ¡ôqXé˜elÞÞõD/ÍꜴ (stats/effects/regeneration/foodregen.lua W£wâ³8W£x —Ÿ ¤ Â4$< ÷j’©‚Ops:] 8stats/effects/regeneration/foodregennovakid.statuseffect W’gjâWLçʔР¤ ™z
- ›\ÒÍ¿8Ù>yÖD--Aý /stats/effects/regeneration/lightregen.animation W’gjZ€W‰X‹ Ø ¤ Â" WåÕ#ý®üF ïc;| )stats/effects/regeneration/lightregen.lua W’gjFø`Wp2(‘ˆ ¤ ÄÑ _‡
- [·¥H0
- eVÊ1ÝÃY 8stats/effects/regeneration/lightregenfloran.statuseffect W™ ÿ+¦<W‡ÓJ ¤ iß¼]`ˆ×5ŒâÚêO×Àòz0f 0stats/effects/regeneration/regenerationminor.lua W™ ÿ+‰œW‡ÓJ ¤ òÂÜ6Yƒž!Ñ7ÒByÇ 9stats/effects/regeneration/regenerationminor.statuseffect WškâÁ”W‡ÓJ ¤ ËR`þ⯱ Ê”ev‰¬ß:s ,stats/effects/swimboost/swimboost1.animation Wškâîå<W !â&¡5ä ¤ ÙªbƒïmaŠé[pvsÒ|ÃÌy<Oz &stats/effects/swimboost/swimboost1.lua Wškâþ2ÐW¤”wÆ¿| ¤ Y*…½$0ª‰áò¿Y¤wNTŠ~ /stats/effects/swimboost/swimboost1.statuseffect Wškâ<%W¤”cŽ“< ¤ _þ»,•<«·:1ÃG³ua§CN… /stats/effects/swimboost/swimboost2.statuseffect WškâZ `W¤”hÀù ¤ Pº#aAïJ¸é
- Y¹yæ)pÂPò /stats/effects/swimboost/swimboost3.statuseffect Wškâx™”W¤”l+¼Q ¤ cöLÝq>Æä¦ü€Á°J
- " /stats/effects/swimboost/swimboost4.statuseffect W“SÙ26LÈWšt¤5buH ¤ €+Ó%Ù …ñk{1;’npR»9ƹ 5stats/effects/swimboost/swimboosthylotl1.statuseffect W“WOðWšt©
- êU8 ¤ €3d0M±õ"8FŸk(‰ó?9 _ 5stats/effects/swimboost/swimboostorcana1.statuseffect TREE › 194 5
- ×âNËk.” €ùk´-È®¶Áµitems 2 1
- R#¹ kmu2¦³Y9mÛéîPactive 2 1
- ˜Ýòp7äÒ)´ÌDE>!shields 2 0
- R£Ûô1þAèŒ$£oxfstats 171 1
- ͘ ey„Xù_"åzIz7effects 171 15
- N{^Úƒô˜Õš–‚ж«ÍÅ«Æ°Xcrit 4 0
- €¯óT<’yÆ>îCŠ—Häfood 11 0
- ›æ]M&y>±²ó ‘yëºJÀlowgrav 3 0
- …#ÏM¼ØO.§m]†dëÿuhpassive 8 0
- K{Ô“× _€.úÅÜ*r88movement 3 0
- ŸLMœµ¬ñïùNø\oæàðjumpboost 2 0
- ÎÔ<sË„»ø`R̯Èx!¢_.„Bswimboost 8 0
- Ü¡˜ÝÜÁô¶.Gb§Mô'yè¢camouflage 3 0
- ¹ó/yuñŽXèÃG,bV¬R¯[damageboost 4 0
- VUóÁOØòó¸bÏj<idefenseboost 2 0
- x³‘P`ý\ýùÅW@(£familiarglow 2 0
- D‰„ØBÓž[,é {²¾A²€regeneration 11 0
- ô÷áÊXKã¾âÕý¨•maxenergyboost 1 0
- píïMïVX4¶w¨G‹°šaT fu_immunityeffects 61 1
- ³fG¸‡?»¿¯“ß,õ°Ø†Ùimmunesting 2 0
- Qÿ¾&ySÁ†« ɳ™ÔK™oÕAfu_racialabilities 48 0
- 5Ç´ŸìgauõDÇãTv}j¢scripts 1 0
- ƒÜ#¹Œ ³¢NÅ4Ö¦™Tãspecies 8 0
- €` ÛÉœ‡(ÉN‹™{ã8¸ùanimations 9 1
- þâä&E¤ˆtx y=´à4dÔ±¡statuseffects 9 1
- »5ß ZvCÓXa÷‘j5#‰qïCheal 9 0
- RU”Y0_ÙÇÍ`P1Q™ú•j€Ú‰›Ê-ëš;),¶Òecs—[8# git ls-files --others --exclude-from=.git/info/exclude
- # Lines that start with '#' are comments.
- # For a project mostly in C, the following would be a good set of
- # exclude patterns (uncomment them if you want to use them):
- # *.[oa]
- # *~
- 0000000000000000000000000000000000000000 75226b51fa2d3fd6269a572cf8c7aa26c01b0894 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470413425 -0400 commit (initial): first push
- 75226b51fa2d3fd6269a572cf8c7aa26c01b0894 bc5f7ffc04fa8862feddf1de28cdf333a393b98c sayterdarkwynd <sayterdarkwynd@gmail.com> 1470413633 -0400 commit: fhylotl test
- bc5f7ffc04fa8862feddf1de28cdf333a393b98c 7b7d511a0cd1b6a80b5260a8b28e9bb8fe01723a sayterdarkwynd <sayterdarkwynd@gmail.com> 1470416100 -0400 commit: glitch are weaker in water
- 7b7d511a0cd1b6a80b5260a8b28e9bb8fe01723a 2e0bd2a60a8fb959f7a2f5e74c36df319d592a84 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470416181 -0400 commit: reduced penalties
- 2e0bd2a60a8fb959f7a2f5e74c36df319d592a84 10852bbefebba04160e10c5f2632598806431495 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470426018 -0400 commit: metadata update
- 10852bbefebba04160e10c5f2632598806431495 07e606cb05a73e060f42191ed968c4ba6d99920b sayterdarkwynd <sayterdarkwynd@gmail.com> 1470433694 -0400 commit: carnivore food regen fix
- 07e606cb05a73e060f42191ed968c4ba6d99920b df8a2fb17c84512b2a6d2438ec5650c7f06da9df sayterdarkwynd <sayterdarkwynd@gmail.com> 1470435111 -0400 commit: fuck it. removed the foods. not worth the headache.
- df8a2fb17c84512b2a6d2438ec5650c7f06da9df b8d0166e458d3a896637dc30b5d24cfbbd184be7 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470446966 -0400 commit: stuff
- b8d0166e458d3a896637dc30b5d24cfbbd184be7 7fa6ecf4630e1b9ceb7ab3057d9a90ab5f399dcd sayterdarkwynd <sayterdarkwynd@gmail.com> 1470540847 -0400 commit: stuffs
- 7fa6ecf4630e1b9ceb7ab3057d9a90ab5f399dcd 91920e63508a5ddbbea7c455017414ac36e1bae4 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470597879 -0400 commit: new effects
- 91920e63508a5ddbbea7c455017414ac36e1bae4 e60e6957c663c9e69e8603576148aa28eb54b3f7 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470599326 -0400 commit: food tests
- e60e6957c663c9e69e8603576148aa28eb54b3f7 bcd8ce7595176f2de4e3da4bf1fc8963036c853b sayterdarkwynd <sayterdarkwynd@gmail.com> 1470628659 -0400 commit: various changes
- bcd8ce7595176f2de4e3da4bf1fc8963036c853b 0c8d2bfaa6d5305bd10d75ef8c5259a7fd3abfaa sayterdarkwynd <sayterdarkwynd@gmail.com> 1470658567 -0400 commit: slowfall balance
- 0c8d2bfaa6d5305bd10d75ef8c5259a7fd3abfaa 954e56df253ddce5969dea4364643b599044da6f sayterdarkwynd <sayterdarkwynd@gmail.com> 1470707577 -0400 commit: various adjustments
- 954e56df253ddce5969dea4364643b599044da6f 3ff24f9fbc37ee4b88adfe6639adba393fb3a057 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470707919 -0400 commit: adjustments to descriptions
- 3ff24f9fbc37ee4b88adfe6639adba393fb3a057 615a0a8b71f9a591f0c9635e664b6094d75cb877 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470708300 -0400 commit: metadata
- 615a0a8b71f9a591f0c9635e664b6094d75cb877 6c088efc2da41981f8203e88e10b21a5057eaad3 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470843443 -0400 commit: slight edits
- 6c088efc2da41981f8203e88e10b21a5057eaad3 82a2d75d93694f3ed297e42719f6080b501b4b86 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470843927 -0400 commit: added
- 82a2d75d93694f3ed297e42719f6080b501b4b86 1f70ae36b156d447137d5fcb8aabd33d1b80ba6c sayterdarkwynd <sayterdarkwynd@gmail.com> 1470946942 -0400 commit: familiars now glow
- 0000000000000000000000000000000000000000 75226b51fa2d3fd6269a572cf8c7aa26c01b0894 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470413425 -0400 commit (initial): first push
- 75226b51fa2d3fd6269a572cf8c7aa26c01b0894 bc5f7ffc04fa8862feddf1de28cdf333a393b98c sayterdarkwynd <sayterdarkwynd@gmail.com> 1470413633 -0400 commit: fhylotl test
- bc5f7ffc04fa8862feddf1de28cdf333a393b98c 7b7d511a0cd1b6a80b5260a8b28e9bb8fe01723a sayterdarkwynd <sayterdarkwynd@gmail.com> 1470416100 -0400 commit: glitch are weaker in water
- 7b7d511a0cd1b6a80b5260a8b28e9bb8fe01723a 2e0bd2a60a8fb959f7a2f5e74c36df319d592a84 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470416181 -0400 commit: reduced penalties
- 2e0bd2a60a8fb959f7a2f5e74c36df319d592a84 10852bbefebba04160e10c5f2632598806431495 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470426018 -0400 commit: metadata update
- 10852bbefebba04160e10c5f2632598806431495 07e606cb05a73e060f42191ed968c4ba6d99920b sayterdarkwynd <sayterdarkwynd@gmail.com> 1470433694 -0400 commit: carnivore food regen fix
- 07e606cb05a73e060f42191ed968c4ba6d99920b df8a2fb17c84512b2a6d2438ec5650c7f06da9df sayterdarkwynd <sayterdarkwynd@gmail.com> 1470435111 -0400 commit: fuck it. removed the foods. not worth the headache.
- df8a2fb17c84512b2a6d2438ec5650c7f06da9df b8d0166e458d3a896637dc30b5d24cfbbd184be7 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470446966 -0400 commit: stuff
- b8d0166e458d3a896637dc30b5d24cfbbd184be7 7fa6ecf4630e1b9ceb7ab3057d9a90ab5f399dcd sayterdarkwynd <sayterdarkwynd@gmail.com> 1470540847 -0400 commit: stuffs
- 7fa6ecf4630e1b9ceb7ab3057d9a90ab5f399dcd 91920e63508a5ddbbea7c455017414ac36e1bae4 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470597879 -0400 commit: new effects
- 91920e63508a5ddbbea7c455017414ac36e1bae4 e60e6957c663c9e69e8603576148aa28eb54b3f7 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470599326 -0400 commit: food tests
- e60e6957c663c9e69e8603576148aa28eb54b3f7 bcd8ce7595176f2de4e3da4bf1fc8963036c853b sayterdarkwynd <sayterdarkwynd@gmail.com> 1470628659 -0400 commit: various changes
- bcd8ce7595176f2de4e3da4bf1fc8963036c853b 0c8d2bfaa6d5305bd10d75ef8c5259a7fd3abfaa sayterdarkwynd <sayterdarkwynd@gmail.com> 1470658567 -0400 commit: slowfall balance
- 0c8d2bfaa6d5305bd10d75ef8c5259a7fd3abfaa 954e56df253ddce5969dea4364643b599044da6f sayterdarkwynd <sayterdarkwynd@gmail.com> 1470707577 -0400 commit: various adjustments
- 954e56df253ddce5969dea4364643b599044da6f 3ff24f9fbc37ee4b88adfe6639adba393fb3a057 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470707919 -0400 commit: adjustments to descriptions
- 3ff24f9fbc37ee4b88adfe6639adba393fb3a057 615a0a8b71f9a591f0c9635e664b6094d75cb877 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470708300 -0400 commit: metadata
- 615a0a8b71f9a591f0c9635e664b6094d75cb877 6c088efc2da41981f8203e88e10b21a5057eaad3 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470843443 -0400 commit: slight edits
- 6c088efc2da41981f8203e88e10b21a5057eaad3 82a2d75d93694f3ed297e42719f6080b501b4b86 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470843927 -0400 commit: added
- 82a2d75d93694f3ed297e42719f6080b501b4b86 1f70ae36b156d447137d5fcb8aabd33d1b80ba6c sayterdarkwynd <sayterdarkwynd@gmail.com> 1470946942 -0400 commit: familiars now glow
- 0000000000000000000000000000000000000000 75226b51fa2d3fd6269a572cf8c7aa26c01b0894 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470413438 -0400 update by push
- 75226b51fa2d3fd6269a572cf8c7aa26c01b0894 bc5f7ffc04fa8862feddf1de28cdf333a393b98c sayterdarkwynd <sayterdarkwynd@gmail.com> 1470413646 -0400 update by push
- bc5f7ffc04fa8862feddf1de28cdf333a393b98c 7b7d511a0cd1b6a80b5260a8b28e9bb8fe01723a sayterdarkwynd <sayterdarkwynd@gmail.com> 1470416113 -0400 update by push
- 7b7d511a0cd1b6a80b5260a8b28e9bb8fe01723a 2e0bd2a60a8fb959f7a2f5e74c36df319d592a84 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470416195 -0400 update by push
- 2e0bd2a60a8fb959f7a2f5e74c36df319d592a84 10852bbefebba04160e10c5f2632598806431495 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470426035 -0400 update by push
- 10852bbefebba04160e10c5f2632598806431495 07e606cb05a73e060f42191ed968c4ba6d99920b sayterdarkwynd <sayterdarkwynd@gmail.com> 1470433708 -0400 update by push
- 07e606cb05a73e060f42191ed968c4ba6d99920b df8a2fb17c84512b2a6d2438ec5650c7f06da9df sayterdarkwynd <sayterdarkwynd@gmail.com> 1470435122 -0400 update by push
- df8a2fb17c84512b2a6d2438ec5650c7f06da9df b8d0166e458d3a896637dc30b5d24cfbbd184be7 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470446981 -0400 update by push
- b8d0166e458d3a896637dc30b5d24cfbbd184be7 7fa6ecf4630e1b9ceb7ab3057d9a90ab5f399dcd sayterdarkwynd <sayterdarkwynd@gmail.com> 1470540862 -0400 update by push
- 7fa6ecf4630e1b9ceb7ab3057d9a90ab5f399dcd 91920e63508a5ddbbea7c455017414ac36e1bae4 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470597892 -0400 update by push
- 91920e63508a5ddbbea7c455017414ac36e1bae4 e60e6957c663c9e69e8603576148aa28eb54b3f7 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470599342 -0400 update by push
- e60e6957c663c9e69e8603576148aa28eb54b3f7 bcd8ce7595176f2de4e3da4bf1fc8963036c853b sayterdarkwynd <sayterdarkwynd@gmail.com> 1470628673 -0400 update by push
- bcd8ce7595176f2de4e3da4bf1fc8963036c853b 0c8d2bfaa6d5305bd10d75ef8c5259a7fd3abfaa sayterdarkwynd <sayterdarkwynd@gmail.com> 1470658581 -0400 update by push
- 0c8d2bfaa6d5305bd10d75ef8c5259a7fd3abfaa 3ff24f9fbc37ee4b88adfe6639adba393fb3a057 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470707931 -0400 update by push
- 3ff24f9fbc37ee4b88adfe6639adba393fb3a057 615a0a8b71f9a591f0c9635e664b6094d75cb877 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470708314 -0400 update by push
- 615a0a8b71f9a591f0c9635e664b6094d75cb877 6c088efc2da41981f8203e88e10b21a5057eaad3 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470843462 -0400 update by push
- 6c088efc2da41981f8203e88e10b21a5057eaad3 82a2d75d93694f3ed297e42719f6080b501b4b86 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470843939 -0400 update by push
- 82a2d75d93694f3ed297e42719f6080b501b4b86 1f70ae36b156d447137d5fcb8aabd33d1b80ba6c sayterdarkwynd <sayterdarkwynd@gmail.com> 1470946961 -0400 update by push
- "frames" : "darkheal2.png",
- "variants" : 1,
- "frameNumber" : 8,
- "animationCycle" : 0.85,
- "offset" : [0, 0]
- }
- {
- "frameGrid" : {
- "size" : [6, 6],
- "dimensions" : [8, 1]
- }
- }
- "frames" : "lightheal.png",
- "variants" : 1,
- "frameNumber" : 8,
- "animationCycle" : 0.85,
- "offset" : [0, 0]
- }
- {
- "frameGrid" : {
- "size" : [6, 6],
- "dimensions" : [8, 1]
- }
- }
- ‰PNG
- IHDR 0 …!7 pHYs šœ 9ÝiTXtXML:com.adobe.xmp <?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
- <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c111 79.158325, 2015/09/10-01:10:20 ">
- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about=""
- xmlns:xmp="http://ns.adobe.com/xap/1.0/"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
- xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
- xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
- xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
- xmlns:exif="http://ns.adobe.com/exif/1.0/">
- <xmp:CreatorTool>Adobe Photoshop CC 2015 (Windows)</xmp:CreatorTool>
- <xmp:CreateDate>2016-05-30T20:28:23-04:00</xmp:CreateDate>
- <xmp:ModifyDate>2016-05-30T21:02:27-04:00</xmp:ModifyDate>
- <xmp:MetadataDate>2016-05-30T21:02:27-04:00</xmp:MetadataDate>
- <dc:format>image/png</dc:format>
- <photoshop:ColorMode>3</photoshop:ColorMode>
- <xmpMM:InstanceID>xmp.iid:1d6e5060-4a66-3045-bf02-ccddfb410986</xmpMM:InstanceID>
- <xmpMM:DocumentID>xmp.did:57a048a0-ed14-4b4b-83ff-280b9b3e1601</xmpMM:DocumentID>
- <xmpMM:OriginalDocumentID>xmp.did:57a048a0-ed14-4b4b-83ff-280b9b3e1601</xmpMM:OriginalDocumentID>
- <xmpMM:History>
- <rdf:Seq>
- <rdf:li rdf:parseType="Resource">
- <stEvt:action>created</stEvt:action>
- <stEvt:instanceID>xmp.iid:57a048a0-ed14-4b4b-83ff-280b9b3e1601</stEvt:instanceID>
- <stEvt:when>2016-05-30T20:28:23-04:00</stEvt:when>
- <stEvt:softwareAgent>Adobe Photoshop CC 2015 (Windows)</stEvt:softwareAgent>
- </rdf:li>
- <rdf:li rdf:parseType="Resource">
- <stEvt:action>saved</stEvt:action>
- <stEvt:instanceID>xmp.iid:1d6e5060-4a66-3045-bf02-ccddfb410986</stEvt:instanceID>
- <stEvt:when>2016-05-30T21:02:27-04:00</stEvt:when>
- <stEvt:softwareAgent>Adobe Photoshop CC 2015 (Windows)</stEvt:softwareAgent>
- <stEvt:changed>/</stEvt:changed>
- </rdf:li>
- </rdf:Seq>
- </xmpMM:History>
- <tiff:Orientation>1</tiff:Orientation>
- <tiff:XResolution>720000/10000</tiff:XResolution>
- <tiff:YResolution>720000/10000</tiff:YResolution>
- <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
- <exif:ColorSpace>65535</exif:ColorSpace>
- <exif:PixelXDimension>48</exif:PixelXDimension>
- <exif:PixelYDimension>6</exif:PixelYDimension>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
- "globalTagDefaults" : {
- "hand" : "near",
- "directives" : ""
- },
- "animatedParts" : {
- "stateTypes" : {
- "shield" : {
- "default" : "idle",
- "states" : {
- "idle" : {},
- "raised" : {},
- "block" : {
- "frames" : 1,
- "cycle" : 0.12,
- "mode" : "transition",
- "transition" : "raised"
- }
- }
- }
- },
- "parts" : {
- "shield" : {
- "properties" : {
- "zLevel" : 1,
- "centered" : true,
- "transformationGroups" : ["shield"],
- "rotationCenter" : [0, 0],
- "shieldPoly" : [ [-0.5, -1.75], [-0.5, 1.75], [0.75, 1.0], [0.75, -1.0] ]
- },
- "partStates" : {
- "shield" : {
- "idle" : {
- "properties" : {
- "image" : "<partImage>:<hand>idle<directives>"
- }
- },
- "raised" : {
- "properties" : {
- "image" : "<partImage>:<hand>raised<directives>"
- }
- },
- "block" : {
- "properties" : {
- "image" : "<partImage>:<hand>raised<directives>",
- "offset" : [-0.25, 0]
- }
- }
- }
- }
- }
- }
- },
- "transformationGroups" : {
- "shield" : {}
- },
- "sounds" : {
- "raiseShield" : [ ],
- "lowerShield" : [ ],
- "perfectBlock" : [ ],
- "block" : [ ],
- "break" : [ ]
- },
- "particleEmitters" : {
- "perfectBlock" : {
- "active" : false,
- "transformationGroups" : ["shield"],
- "emissionRate" : 30,
- "offsetRegion" : [-0.5, -1.0, 0.5, 1.0],
- "particles" : [
- { "particle" : "sparkle5"},
- { "particle" : "sparkle5"}
- ]
- },
- "bonusBlock" : {
- "active" : false,
- "transformationGroups" : ["shield"],
- "emissionRate" : 30,
- "offsetRegion" : [-0.5, -1.0, 0.5, 1.0],
- "particles" : [
- { "particle" : "healthcross"},
- { "particle" : "healthcross"}
- ]
- },
- "bonusBlock2" : {
- "active" : false,
- "transformationGroups" : ["shield"],
- "emissionRate" : 30,
- "offsetRegion" : [-0.5, -1.0, 0.5, 1.0],
- "particles" : [
- { "particle" : "greencartoonstar"},
- { "particle" : "greencartoonstar"}
- ]
- },
- "bonusBlock3" : {
- "active" : false,
- "transformationGroups" : ["shield"],
- "emissionRate" : 30,
- "offsetRegion" : [-0.5, -1.0, 0.5, 1.0],
- "particles" : [
- { "particle" : "redcartoonstar"},
- { "particle" : "redcartoonstar"}
- ]
- },
- "bonusBlock4" : {
- "active" : false,
- "transformationGroups" : ["shield"],
- "emissionRate" : 90,
- "offsetRegion" : [-0.5, -1.0, 0.5, 1.0],
- "particles" : [
- { "particle" : "greencartoonstar"},
- { "particle" : "greencartoonstar"}
- ]
- }
- }
- }
- require "/scripts/util.lua"
- require "/scripts/status.lua"
- function init()
- self.debug = true
- self.aimAngle = 0
- self.aimDirection = 1
- self.active = false
- self.cooldownTimer = config.getParameter("cooldownTime")
- self.activeTimer = 0
- self.level = config.getParameter("level", 1)
- self.baseShieldHealth = config.getParameter("baseShieldHealth", 1)
- self.knockback = config.getParameter("knockback", 0)
- self.perfectBlockDirectives = config.getParameter("perfectBlockDirectives", "")
- self.perfectBlockTime = config.getParameter("perfectBlockTime", 0.2)
- self.minActiveTime = config.getParameter("minActiveTime", 0)
- self.cooldownTime = config.getParameter("cooldownTime")
- self.forceWalk = config.getParameter("forceWalk", false)
- animator.setGlobalTag("directives", "")
- animator.setAnimationState("shield", "idle")
- activeItem.setOutsideOfHand(true)
- self.stances = config.getParameter("stances")
- setStance(self.stances.idle)
- self.blockCount = 0.01
- self.startHealth = status.resource("health")
- updateAim()
- end
- function update(dt, fireMode, shiftHeld)
- self.cooldownTimer = math.max(0, self.cooldownTimer - dt)
- --**************************************
- if self.blockCount == nil then
- self.blockCount = 0.01
- end
- --**************************************
- if not self.active
- and fireMode == "primary"
- and self.cooldownTimer == 0
- and status.resourcePositive("shieldStamina") then
- raiseShield()
- end
- if self.active then
- self.activeTimer = self.activeTimer + dt
- self.damageListener:update()
- if status.resourcePositive("perfectBlock") then
- animator.setGlobalTag("directives", self.perfectBlockDirectives)
- else
- animator.setGlobalTag("directives", "")
- end
- if self.forceWalk then
- mcontroller.controlModifiers({runningSuppressed = true})
- end
- if (fireMode ~= "primary" and self.activeTimer >= self.minActiveTime) or not status.resourcePositive("shieldStamina") then
- lowerShield()
- end
- end
- updateAim()
- end
- function uninit()
- status.clearPersistentEffects(activeItem.hand().."Shield")
- activeItem.setItemShieldPolys({})
- activeItem.setItemDamageSources({})
- status.clearPersistentEffects("humanprotection")
- status.clearPersistentEffects("vieraprotection")
- status.clearPersistentEffects("hylotlprotection")
- status.clearPersistentEffects("glitchprotection")
- end
- function updateAim()
- local aimAngle, aimDirection = activeItem.aimAngleAndDirection(0, activeItem.ownerAimPosition())
- if self.stance.allowRotate then
- self.aimAngle = aimAngle
- end
- activeItem.setArmAngle(self.aimAngle + self.relativeArmRotation)
- if self.stance.allowFlip then
- self.aimDirection = aimDirection
- end
- activeItem.setFacingDirection(self.aimDirection)
- animator.setGlobalTag("hand", isNearHand() and "near" or "far")
- activeItem.setOutsideOfHand(not self.active or isNearHand())
- end
- function isNearHand()
- return (activeItem.hand() == "primary") == (self.aimDirection < 0)
- end
- function setStance(stance)
- self.stance = stance
- self.relativeShieldRotation = util.toRadians(stance.shieldRotation) or 0
- self.relativeArmRotation = util.toRadians(stance.armRotation) or 0
- end
- function raiseShield()
- setStance(self.stances.raised)
- animator.setAnimationState("shield", "raised")
- animator.playSound("raiseShield")
- self.active = true
- self.activeTimer = 0
- status.setPersistentEffects(activeItem.hand().."Shield", {{stat = "shieldHealth", amount = shieldHealth()}})
- local shieldPoly = animator.partPoly("shield", "shieldPoly")
- activeItem.setItemShieldPolys({shieldPoly})
- if self.knockback > 0 then
- local knockbackDamageSource = {
- poly = shieldPoly,
- damage = 0,
- damageType = "Knockback",
- sourceEntity = activeItem.ownerEntityId(),
- team = activeItem.ownerTeam(),
- knockback = self.knockback,
- rayCheck = true,
- damageRepeatTimeout = 0.25
- }
- activeItem.setItemDamageSources({ knockbackDamageSource })
- end
- self.damageListener = damageListener("damageTaken", function(notifications)
- for _,notification in pairs(notifications) do
- if notification.hitType == "ShieldHit" then
- if status.resourcePositive("perfectBlock") then
- animator.playSound("perfectBlock")
- animator.burstParticleEmitter("perfectBlock")
- -- *******************************************************
- self.blockCount = self.blockCount + 0.01
- -- *******************************************************
- -- FRACKIN UNIVERSE and FRACKIN RACES abilities start here
- -- *******************************************************
- -- *******************************************************
- -- *******************************************************
- if world.entitySpecies(activeItem.ownerEntityId()) == "glitch" then
- self.blockCount = self.blockCount + 0.03
- status.setPersistentEffects("glitchprotection", {{stat = "powerMultiplier", amount = self.blockCount}}) --glitch get a power bonus when perfectly blocking
- animator.burstParticleEmitter("bonusBlock3")
- end
- if world.entitySpecies(activeItem.ownerEntityId()) == "hylotl" then
- status.modifyResourcePercentage("health", 0.05 + self.blockCount ) --hylotl get a heal when they perfectly block
- animator.burstParticleEmitter("bonusBlock")
- end
- if world.entitySpecies(activeItem.ownerEntityId()) == "viera" then
- status.modifyResourcePercentage("energy", 0.07 + self.blockCount ) --viera get energy when they perfectly block
- animator.burstParticleEmitter("bonusBlock2")
- end
- if world.entitySpecies(activeItem.ownerEntityId()) == "human" then
- self.blockCount = self.blockCount + 2
- status.setPersistentEffects("humanprotection", {{stat = "protection", amount = self.blockCount}}) --human get a defense bonus when perfectly blocking
- animator.burstParticleEmitter("bonusBlock4")
- end
- -- *******************************************************
- -- *******************************************************
- -- *******************************************************
- -- *******************************************************
- refreshPerfectBlock()
- elseif status.resourcePositive("shieldStamina") then
- animator.playSound("block")
- -- *******************************************************
- self.blockCount = 0 --reset the blockCount here
- if world.entitySpecies(activeItem.ownerEntityId()) == "glitch" then --glitch dont stack more bonus if they miss blocking
- self.blockCount = 0 --reset bonus here
- status.clearPersistentEffects("glitchprotection")
- end
- if world.entitySpecies(activeItem.ownerEntityId()) == "human" then --human dont stack more bonus if they miss blocking
- self.blockCount = 0 --reset bonus here
- status.clearPersistentEffects("humanprotection")
- end
- -- *******************************************************
- else
- animator.playSound("break")
- -- *******************************************************
- self.blockCount = 0 --reset the blockCount here
- if world.entitySpecies(activeItem.ownerEntityId()) == "glitch" then --glitch dont stack more bonus if they miss blocking
- self.blockCount = 0 --reset bonus here
- status.clearPersistentEffects("glitchprotection")
- end
- if world.entitySpecies(activeItem.ownerEntityId()) == "human" then --human dont stack more bonus if they miss blocking
- self.blockCount = 0 --reset bonus here
- status.clearPersistentEffects("humanprotection")
- end
- -- *******************************************************
- end
- animator.setAnimationState("shield", "block")
- return
- end
- end
- end)
- refreshPerfectBlock()
- end
- function refreshPerfectBlock()
- local perfectBlockTimeAdded = math.max(0, math.min(status.resource("perfectBlockLimit"), self.perfectBlockTime - status.resource("perfectBlock")))
- status.overConsumeResource("perfectBlockLimit", perfectBlockTimeAdded)
- status.modifyResource("perfectBlock", perfectBlockTimeAdded)
- end
- function lowerShield()
- setStance(self.stances.idle)
- animator.setGlobalTag("directives", "")
- animator.setAnimationState("shield", "idle")
- animator.playSound("lowerShield")
- self.active = false
- self.activeTimer = 0
- status.clearPersistentEffects(activeItem.hand().."Shield")
- activeItem.setItemShieldPolys({})
- activeItem.setItemDamageSources({})
- self.cooldownTimer = self.cooldownTime
- end
- function shieldHealth()
- return self.baseShieldHealth * root.evalFunction("shieldLevelMultiplier", self.level)
- end
- [
- { "op": "add", "path" : "/statusControllerSettings/primaryScriptSources/-" , "value" : "/scripts/raceEffects.lua" }
- ]require("/scripts/vec2.lua")
- local fuoldInit = init
- local fuoldUpdate = update
- local fuoldUninit = uninit
- function init()
- fuoldInit()
- self.lastYPosition = 0
- self.lastYVelocity = 0
- self.fallDistance = 0
- local bounds = mcontroller.boundBox() --Mcontroller for movement
- end
- function update(dt)
- fuoldUpdate(dt)
- --Human
- if world.entitySpecies(entity.id()) == "human" then
- status.addEphemeralEffect("racehuman",math.huge)
- end
- --Avian
- if world.entitySpecies(entity.id()) == "avian" then
- status.addEphemeralEffect("raceavian",math.huge)
- status.addEphemeralEffect("hpedge",math.huge)
- end
- --Apex
- if world.entitySpecies(entity.id()) == "apex" then
- status.addEphemeralEffect("raceapex",math.huge)
- status.addEphemeralEffect("metabolism",math.huge)
- end
- --Floran
- if world.entitySpecies(entity.id()) == "floran" then
- status.addEphemeralEffect("racefloran",math.huge)
- status.addEphemeralEffect("starvingedge",math.huge)
- status.addEphemeralEffect("lightregenfloran",math.huge)
- end
- --Hylotl
- if world.entitySpecies(entity.id()) == "hylotl" then
- status.addEphemeralEffect("racehylotl",math.huge)
- status.addEphemeralEffect("swimboost2",math.huge)
- end
- --Glitch
- if world.entitySpecies(entity.id()) == "glitch" then
- status.addEphemeralEffect("raceglitch",math.huge)
- status.addEphemeralEffect("attrition",math.huge)
- end
- --Novakid
- if world.entitySpecies(entity.id()) == "novakid" then
- status.addEphemeralEffect("racenovakid",math.huge)
- status.addEphemeralEffect("foodregennovakid",math.huge)
- end
- --avali
- if world.entitySpecies(entity.id()) == "avali" then
- status.addEphemeralEffect("raceavali",math.huge)
- end
- --avikan
- if world.entitySpecies(entity.id()) == "avikan" then
- status.addEphemeralEffect("raceavikan",math.huge)
- end
- --peglaci
- if world.entitySpecies(entity.id()) == "peglaci" then
- status.addEphemeralEffect("racepeglaci",math.huge)
- end
- --felins
- if world.entitySpecies(entity.id()) == "felin" then
- status.addEphemeralEffect("racefelins",math.huge)
- end
- --Orcana
- if world.entitySpecies(entity.id()) == "orcana" then
- status.addEphemeralEffect("raceorcana",math.huge)
- status.addEphemeralEffect("swimboost2",math.huge)
- end
- --Munari
- if world.entitySpecies(entity.id()) == "munari" then
- status.addEphemeralEffect("raceorcana",math.huge)
- status.addEphemeralEffect("swimboost2",math.huge)
- end
- --ponex
- if world.entitySpecies(entity.id()) == "ponex" then
- status.addEphemeralEffect("raceponex",math.huge)
- end
- --viera (bunny people)
- if world.entitySpecies(entity.id()) == "viera" then
- status.addEphemeralEffect("raceviera",math.huge)
- end
- --fenerox (fox people)
- if world.entitySpecies(entity.id()) == "fenerox" then
- status.addEphemeralEffect("racefenerox",math.huge)
- status.addEphemeralEffect("darkregenfenerox",math.huge)
- status.addEphemeralEffect("metabolism",math.huge)
- end
- --kineptic (mage cats)
- if world.entitySpecies(entity.id()) == "kineptic" then
- status.addEphemeralEffect("racekineptic",math.huge)
- status.addEphemeralEffect("darkregenfenerox",math.huge)
- end
- --vespoid (bug people)
- if world.entitySpecies(entity.id()) == "vespoid" then
- status.addEphemeralEffect("racevespoid",math.huge)
- end
- --familiar (stuffed animal type things)
- if world.entitySpecies(entity.id()) == "familiar" then
- status.addEphemeralEffect("racefamiliar",math.huge)
- status.addEphemeralEffect("familiarglow",math.huge)
- end
- --neko (cat girls)
- if world.entitySpecies(entity.id()) == "neko" then
- status.addEphemeralEffect("raceneko",math.huge)
- status.addEphemeralEffect("novakidglow",math.huge)
- end
- --sergal (cat/fox/hybrid ...thing)
- if world.entitySpecies(entity.id()) == "sergal" then
- status.addEphemeralEffect("racesergal",math.huge)
- end
- --inkling already has racial abilities in its own native mod. no need for this.
- --if world.entitySpecies(entity.id()) == "inkling" then
- -- status.addEphemeralEffect("raceinkling",math.huge)
- -- status.addEphemeralEffect("swimboost1",math.huge)
- --end
- --vulpes (fox people)
- if world.entitySpecies(entity.id()) == "vulpes" then
- status.addEphemeralEffect("racevulpes",math.huge)
- end
- --kemono (fox people)
- if world.entitySpecies(entity.id()) == "kemono" then
- status.addEphemeralEffect("racekemono",math.huge)
- end
- --ningen (exact same as fucking humans)
- if world.entitySpecies(entity.id()) == "ningen" then
- end
- --LLL (wolves , Locus Les Loupes)
- if world.entitySpecies(entity.id()) == "loupes" then
- end
- --mephetor (skunk)
- if world.entitySpecies(entity.id()) == "mephetor" then
- end
- local mouthPosition = vec2.add(mcontroller.position(), status.statusProperty("mouthPosition"))
- if status.statPositive("breathProtection") or world.breathable(mouthPosition)
- or status.statPositive("waterbreathProtection") and world.liquidAt(mouthPosition)
- then
- status.modifyResource("breath", status.stat("breathRegenerationRate") * dt)
- else
- status.modifyResource("breath", -status.stat("breathDepletionRate") * dt)
- end
- end[
- { "op": "replace",
- "path" : "/charCreationTooltip/description" ,
- "value" : "A race of highly intelligent primates. ^orange;High Metabolism^reset;: ^red;Needs to eat more often^reset; than other races, but gains ^green;+11% speed^reset; and ^green;+15% jump^reset;. ^green;Immune: Mud tiles, Jungle tiles^reset;. ^green;+20% HP bonus^reset;."
- }
- ][
- { "op": "replace",
- "path" : "/charCreationTooltip/description" ,
- "value" : "Adorable fuzzy space raptors with wings. ^red;-10% HP^reset;, ^green;+5% Energy^reset;, ^green;Immunities: Snow and Cold^reset;,^orange;Limited Flight^reset;: 0% fall damage, and can Glide."
- }
- ][
- { "op": "replace",
- "path" : "/charCreationTooltip/description" ,
- "value" : "Avians are a race of colourful birdfolk whose tribal culture revolves around the worship of Kluex - the winged god of the Aether. ^red;-15% HP^reset;, ^green;+10% Energy^reset;, ^orange;Jump Power^reset;, ^green;-65% Fall Damage + Slowed Fall^reset;, ^orange;+8% Damage^reset;^green;(increases as your HP depletes)^reset;."
- }
- ][
- { "op": "replace",
- "path" : "/charCreationTooltip/description" ,
- "value" : "Don't be fooled by their peaceful appearance! Florans are known throughout the universe to be aggressive, carnivorous hunters. ^red;-10% HP^reset;, ^green;+15% Energy^reset;, ^orange;+Hold Breath^reset;, ^green;Regenerate during daylight hours^reset;, ^green;Shock Immunity^reset;, ^green;Damage increases^reset; ^orange;the more you starve^reset;."
- }
- ][
- { "op": "replace",
- "path" : "/charCreationTooltip/description" ,
- "value" : "Hardy, strong automatons. ^red;+30% Fall Dmg^reset;, ^red;-1s energy regen^reset;, ^green;+5% Energy^reset;, ^green;-Hunger^reset;, ^green;+10% HP^reset;, ^green;Protection +7^reset;, ^orange;Doesn't Breathe^reset;, ^green;Immune: Poison^reset;, ^green;Immune: Stings^reset;. ^orange;With Shield^reset;: ^green;Perfect blocks^reset; increase damage^reset;. ^red;Weakened when submerged^reset;."
- }
- ][
- { "op": "replace",
- "path" : "/charCreationTooltip/description" ,
- "value" : "Humans are well rounded, and have excellent defensive ability. ^red;No penalties^reset;. ^green;+15% HP^reset;, ^green;+15% Energy^reset;, ^green;-25% Knockback^reset;, ^green;+30 Max Food^reset;^orange; +0.07 jump time^reset;, ^orange;Perfect Blocks^reset;^green; increase defense^reset;."
- }
- ][
- { "op": "replace",
- "path" : "/charCreationTooltip/description" ,
- "value" : "The peaceful Hylotl place great value on ancestral tradition and take great comfort in the arts. ^red;-20% Energy^reset;, ^green;+10% HP^reset;, ^green;Immune: Wet^reset;, ^orange;With Shield^reset;: ^purple;Perfect Blocks^reset; restore HP. ^orange;In Water^reset;: ^green;+9 Protection^reset;, ^green;+20 HP^reset;, ^green;+1400 Air^reset;, ^green;Swim Boost^reset;."
- }
- ][
- { "op": "replace",
- "path" : "/charCreationTooltip/description" ,
- "value" : "The Novakids are a mysterious race of 'interstellar gas-bag people'. They have no charted settlements and no documented history. ^red;-10% HP^reset;, ^green;+40% Energy^reset;, ^green;-60% Knockback^reset;, ^green;+5% Speed^reset;, ^green;Immune: All Radiation^reset;, ^green;Immune: Burning^reset;. ^orange;Glow in the dark^reset;."
- }
- ]{
- "name" : "camouflage100",
- "effectConfig" : {
- "alpha" : 1
- },
- "defaultDuration" : 5,
- "scripts" : [
- "camouflage.lua"
- ],
- "label" : "Invisible",
- "icon" : "/interface/statuses/invisible.png"
- }
- {
- "name" : "camouflage85",
- "effectConfig" : {
- "alpha" : 0.85
- },
- "defaultDuration" : 5,
- "scripts" : [
- "camouflage.lua"
- ],
- "label" : "Camouflage",
- "icon" : "/interface/statuses/invisible.png"
- }
- {
- "name" : "camouflage99",
- "effectConfig" : {
- "alpha" : 0.99
- },
- "defaultDuration" : 5,
- "scripts" : [
- "camouflage.lua"
- ],
- "label" : "Camouflage",
- "icon" : "/interface/statuses/invisible.png"
- }
- function init()
- local bounds = mcontroller.boundBox()
- self.critChance = config.getParameter("critChance")
- self.critBonus = config.getParameter("critBonus")
- self.powerModifier = config.getParameter("powerModifier", 0)
- script.setUpdateDelta(10)
- end
- function generateCrit()
- damageOutput = baseDamage + baseDamage * critMult(weapon) + critBonus(weapon)
- rawDamage = weapon.damageOutput
- damageInput = rawDamage - rawDamage * critMitigation(me)
- if math.random(100) < critChance then
- critDamage = critBonus * powerModifier
- else
- critDamage = 0
- end
- return critDamage
- end
- function update(dt)
- if status.resourcePositive("perfectBlock") then
- self.healingRate = 1.01 / config.getParameter("healTime", 180)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- end
- end
- function uninit()
- endfunction init()
- local bounds = mcontroller.boundBox()
- self.critChance = config.getParameter("critChance")
- self.critBonus = config.getParameter("critBonus")
- self.powerModifier = config.getParameter("powerModifier", 0)
- script.setUpdateDelta(10)
- end
- function generateCrit()
- damageOutput = baseDamage + baseDamage * critMult(weapon) + critBonus(weapon)
- rawDamage = weapon.damageOutput
- damageInput = rawDamage - rawDamage * critMitigation(me)
- if math.random(100) < critChance then
- critDamage = critBonus * powerModifier
- else
- critDamage = 0
- end
- return critDamage
- end
- function update(dt)
- if status.resourcePositive("perfectBlock") then
- self.healingRate = 1.01 / config.getParameter("healTime", 180)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- end
- end
- function uninit()
- endfunction init()
- local bounds = mcontroller.boundBox()
- self.critChance = config.getParameter("critChance")
- self.critBonus = config.getParameter("critBonus")
- self.powerModifier = config.getParameter("powerModifier", 0)
- script.setUpdateDelta(10)
- end
- function generateCrit()
- damageOutput = baseDamage + baseDamage * critMult(weapon) + critBonus(weapon)
- rawDamage = weapon.damageOutput
- damageInput = rawDamage - rawDamage * critMitigation(me)
- if math.random(100) < critChance then
- critDamage = critBonus * powerModifier
- else
- critDamage = 0
- end
- return critDamage
- end
- function update(dt)
- if status.resourcePositive("perfectBlock") then
- self.healingRate = 1.01 / config.getParameter("healTime", 180)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- end
- end
- function uninit()
- endfunction init()
- local bounds = mcontroller.boundBox()
- script.setUpdateDelta(10)
- end
- -- not working right. heals every time i press block. need to only be on a perfect block
- function update(dt)
- if status.resourcePositive("perfectBlock") then
- self.healingRate = 24.01 / 2
- status.modifyResourcePercentage("health", self.healingRate * dt)
- end
- end
- function uninit()
- end{
- "particleEmitters" : {
- "embers" : {
- "enabled" : true,
- "emissionRate" : 25.0,
- "particles" : [
- {
- "particle" : {
- "type" : "ember",
- "size" : 1.5,
- "color" : [170, 50, 50, 230],
- "fade" : 0.9,
- "destructionAction" : "shrink",
- "destructionTime" : 0.8,
- "position" : [0.0, 0.0],
- "offsetRegion" : [0, 0, 0, 0],
- "initialVelocity" : [0, 2],
- "approach" : [0, 10],
- "timeToLive" : 0.3,
- "variance" : {
- "initialVelocity" : [0, 1]
- }
- }
- }
- ]
- },
- "statustext" : {
- "enabled" : true,
- "emissionRate" : 1.0,
- "particles" : [
- {
- "particle" : {
- "type" : "text",
- "text" : "Dmg Bonus",
- "size" : 0.75,
- "color" : [170, 50, 50, 230],
- "fade" : 1,
- "destructionAction" : "shrink",
- "destructionTime" : 0.8,
- "position" : [0.0, 0.0],
- "offsetRegion" : [0, 0, 0, 0],
- "initialVelocity" : [0, 4],
- "finalVelocity" : [0, 1],
- "approach" : [0, 10],
- "timeToLive" : 1,
- "variance" : {
- }
- }
- }
- ]
- }
- }
- }
- function init()
- --Power
- self.powerModifier = config.getParameter("powerModifier", 0)
- effect.addStatModifierGroup({{stat = "powerMultiplier", baseMultiplier = self.powerModifier}})
- end
- function update(dt)
- end
- function uninit()
- end
- {
- "name" : "damagebonusavian",
- "effectConfig" : {
- "powerModifier" : 1.07
- },
- "defaultDuration" : 300,
- "scripts" : [
- "damagebonusavian.lua"
- ],
- "animationConfig" : "damagebonusavian.animation",
- "label" : "Dmg+"
- }
- {
- "name" : "damagebonusfelin",
- "effectConfig" : {
- "powerModifier" : 1.08
- },
- "defaultDuration" : 300,
- "scripts" : [
- "damagebonusavian.lua"
- ],
- "animationConfig" : "damagebonusavian.animation",
- "label" : "Dmg+"
- }
- function init()
- effect.addStatModifierGroup({{stat = "protection", amount = config.getParameter("defenseAmount", 0)}})
- script.setUpdateDelta(0)
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "hylotlunderwater",
- "effectConfig" : {
- "defenseAmount" : 14
- },
- "defaultDuration" : 60,
- "scripts" : [
- "defenseboost.lua"
- ],
- "label" : "Def +",
- "icon" : "/interface/statuses/defense2.png"
- }
- {
- "lights" : {
- "glow" : {
- "active" : true,
- "position" : [0, 0],
- "color" : [60, 90, 60],
- "pointLight" : false
- }
- }
- }
- {
- "name" : "familiarglow",
- "effectConfig" : {},
- "defaultDuration" : 5,
- "scripts" : [],
- "animationConfig" : "familiarglow.animation"
- }
- {
- "particleEmitters" : {
- "drips" : {
- "enabled" : true,
- "emissionRate" : 1.0,
- "particles" : [
- {
- "particle" : {
- "type" : "ember",
- "size" : 1.0,
- "color" : [30, 250, 30, 120],
- "fade" : 0.9,
- "destructionAction" : "shrink",
- "destructionTime" : 0.8,
- "position" : [0.0, 0.0],
- "offsetRegion" : [0, 0, 0, 0],
- "initialVelocity" : [0, -1.0],
- "finalVelocity" : [0, -6],
- "approach" : [0, 10],
- "timeToLive" : 0.6,
- "variance" : {
- "initialVelocity" : [0.2, 0],
- "size" : 0.5
- }
- }
- }
- ]
- }
- }
- }
- function init()
- animator.setParticleEmitterOffsetRegion("drips", mcontroller.boundBox())
- animator.setParticleEmitterActive("drips", true)
- script.setUpdateDelta(5)
- self.tickDamagePercentage = 0.010
- self.tickTime = 1.0
- self.tickTimer = self.tickTime
- end
- function update(dt)
- if not world.entitySpecies(entity.id()) == "floran" then
- self.tickTimer = self.tickTimer - dt
- if self.tickTimer <= 0 then
- self.tickTimer = self.tickTime
- status.applySelfDamageRequest({
- damageType = "IgnoresDef",
- damage = math.floor(status.resourceMax("health") * self.tickDamagePercentage) + 1,
- damageSourceKind = "poison",
- sourceEntityId = entity.id()
- })
- end
- effect.setParentDirectives("fade=00AA00="..self.tickTimer * 0.4)
- end
- end
- function uninit()
- end{
- "name" : "carnivorefood",
- "blockingStat" : "poisonStatusImmunity",
- "effectConfig" : {},
- "defaultDuration" : 30,
- "scripts" : [
- "carnivorefood.lua"
- ],
- "animationConfig" : "carnivorefood.animation",
- "label" : "Food Poisoning",
- "icon" : "/interface/statuses/foodpoison.png"
- }
- {
- "particleEmitters" : {
- "drips" : {
- "enabled" : true,
- "emissionRate" : 1.0,
- "particles" : [
- {
- "particle" : {
- "type" : "ember",
- "size" : 1.0,
- "color" : [30, 250, 30, 120],
- "fade" : 0.9,
- "destructionAction" : "shrink",
- "destructionTime" : 0.8,
- "position" : [0.0, 0.0],
- "offsetRegion" : [0, 0, 0, 0],
- "initialVelocity" : [0, -1.0],
- "finalVelocity" : [0, -6],
- "approach" : [0, 10],
- "timeToLive" : 0.6,
- "variance" : {
- "initialVelocity" : [0.2, 0],
- "size" : 0.5
- }
- }
- }
- ]
- }
- }
- }
- function init()
- self.tickDamagePercentage = 0.005
- self.tickTime = 5.0
- self.tickTimer = self.tickTime
- animator.setParticleEmitterOffsetRegion("drips", mcontroller.boundBox())
- animator.setParticleEmitterActive("drips", true)
- end
- function update(dt)
- if world.entitySpecies(entity.id()) == "floran" then
- self.tickTimer = self.tickTimer - dt
- if self.tickTimer <= 0 then
- self.tickTimer = self.tickTime
- status.applySelfDamageRequest({
- damageType = "IgnoresDef",
- damage = math.floor(status.resourceMax("health") * self.tickDamagePercentage) + 1,
- damageSourceKind = "poison",
- sourceEntityId = entity.id()
- })
- end
- effect.setParentDirectives("fade=ffea55="..self.tickTimer * 0.4)
- mcontroller.controlModifiers({
- speedModifier = 0.80,
- airJumpModifier = 0.80
- })
- end
- end
- function uninit()
- end{
- "name" : "carnivorefoodcooked",
- "blockingStat" : "poisonStatusImmunity",
- "effectConfig" : {},
- "defaultDuration" : 30,
- "scripts" : [
- "carnivorefoodcooked.lua"
- ],
- "animationConfig" : "carnivorefoodcooked.animation",
- "label" : "Food Poisoning",
- "icon" : "/interface/statuses/foodpoison.png"
- }
- {
- "particleEmitters" : {
- "drips" : {
- "enabled" : true,
- "emissionRate" : 12.0,
- "particles" : [
- {
- "particle" : {
- "type" : "ember",
- "size" : 1.0,
- "color" : [20, 30, 230, 120],
- "fade" : 0.9,
- "destructionAction" : "shrink",
- "destructionTime" : 0.8,
- "position" : [0.0, 0.0],
- "offsetRegion" : [0, 0, 0, 0],
- "initialVelocity" : [0, -1.0],
- "finalVelocity" : [0, -6],
- "approach" : [0, 10],
- "timeToLive" : 0.6,
- "variance" : {
- "initialVelocity" : [0.2, 0],
- "size" : 0.5
- }
- }
- }
- ]
- }
- }
- }
- function init()
- --animator.setParticleEmitterOffsetRegion("drips", mcontroller.boundBox())
- --animator.setParticleEmitterActive("drips", true)
- self.protectionBonus = config.getParameter("protectionBonus", 0)
- baseValue = config.getParameter("healthBonus",0)*(status.resourceMax("health"))
- baseValue2 = config.getParameter("energyBonus",0)*(status.resourceMax("energy"))
- baseValue3 = config.getParameter("fallBonus",0)*(status.stat("fallDamageMultiplier"))
- isGlitchx= 0
- isNot=0
- baseValue4 = config.getParameter("healthPenalty",0)*(status.resourceMax("health"))
- baseValue5 = config.getParameter("energyPenalty",0)*(status.resourceMax("energy"))
- self.protectionBonus2 = config.getParameter("protectionPenalty", 0)
- self.tickDamagePercentage = 0.010
- self.tickTime = 1.0
- self.tickTimer = self.tickTime
- script.setUpdateDelta(5)
- end
- function update(dt)
- if world.entitySpecies(entity.id()) == "glitch" then
- isGlitchx=1
- applyEffects()
- else
- isGlitchx=0
- applyEffects()
- end
- self.tickTimer = self.tickTimer - dt
- if self.tickTimer <= 0 then
- self.tickTimer = self.tickTime
- if isNot >= 1 then
- status.applySelfDamageRequest({
- damageType = "IgnoresDef",
- damage = math.floor(status.resourceMax("health") * self.tickDamagePercentage) + 1,
- damageSourceKind = "poison",
- sourceEntityId = entity.id()
- })
- effect.setParentDirectives("fade=806e4f="..self.tickTimer * 0.4)
- end
- end
- end
- function applyEffects()
- if isGlitchx==1 then
- status.setPersistentEffects("glitchpower1", {{stat = "protection", amount = self.protectionBonus}})
- status.setPersistentEffects("glitchpower2", {{stat = "maxHealth", amount = baseValue }})
- status.setPersistentEffects("glitchpower3", {{stat = "maxEnergy", amount = baseValue2 }})
- status.setPersistentEffects("glitchpower4", {{stat = "fallDamageMultiplier", amount = baseValue3}})
- isGlitchx=2
- elseif isGlitchx==0 then
- status.setPersistentEffects("noglitch1", {{stat = "protection", amount = self.protectionBonus2}})
- status.setPersistentEffects("noglitch2", {{stat = "maxHealth", amount = baseValue4 }})
- status.setPersistentEffects("noglitch3", {{stat = "maxEnergy", amount = baseValue5 }})
- isGlitchx=0
- isNot=1
- end
- end
- function uninit()
- status.clearPersistentEffects("glitchpower1")
- status.clearPersistentEffects("glitchpower2")
- status.clearPersistentEffects("glitchpower3")
- status.clearPersistentEffects("glitchpower4")
- status.clearPersistentEffects("noglitch1")
- status.clearPersistentEffects("noglitch2")
- status.clearPersistentEffects("noglitch3")
- end{
- "name" : "robofood",
- "effectConfig" : {
- "healthBonus" : 0.05,
- "energyBonus" : 0.08,
- "protectionBonus" : 3,
- "healthPenalty" : -0.05,
- "energyPenalty" : -0.08,
- "protectionPenalty" : -3,
- "fallBonus" : -0.5
- },
- "defaultDuration" : 60,
- "scripts" : [
- "robofood.lua"
- ],
- "animationConfig" : "robofood.animation",
- "label" : "Glitch Food",
- "icon" : "/interface/statuses/foodpoison.png"
- }
- {
- "name" : "robofood2",
- "effectConfig" : {
- "healthBonus" : 0.07,
- "energyBonus" : 0.10,
- "protectionBonus" : 6,
- "healthPenalty" : -0.07,
- "energyPenalty" : -0.10,
- "protectionPenalty" : -6,
- "fallBonus" : -0.1
- },
- "defaultDuration" : 60,
- "scripts" : [
- "robofood.lua"
- ],
- "animationConfig" : "robofood.animation",
- "label" : "Glitch Food",
- "icon" : "/interface/statuses/foodpoison.png"
- }
- {
- "name" : "robofood3",
- "effectConfig" : {
- "healthBonus" : 0.10,
- "energyBonus" : 0.20,
- "protectionBonus" : 9,
- "healthPenalty" : -0.10,
- "energyPenalty" : -0.20,
- "protectionPenalty" : -9,
- "fallBonus" : -0.15
- },
- "defaultDuration" : 60,
- "scripts" : [
- "robofood.lua"
- ],
- "animationConfig" : "robofood.animation",
- "label" : "Glitch Food",
- "icon" : "/interface/statuses/foodpoison.png"
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "beestingImmunity", amount = 1},
- {stat = "honeyslowImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "beeimmunity",
- "effectConfig" : {},
- "defaultDuration" : 120,
- "scripts" : [
- "beeimmunity.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "beestingImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "beestingimmunity",
- "effectConfig" : {},
- "defaultDuration" : 120,
- "scripts" : [
- "beestingimmunity.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "biooozeImmunity", amount = 1},
- {stat = "poisonStatusImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "biooozeimmunity",
- "effectConfig" : {},
- "defaultDuration" : 120,
- "scripts" : [
- "biooozeimmunity.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "blacktarImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "blacktarimmunity",
- "effectConfig" : {},
- "defaultDuration" : 120,
- "scripts" : [
- "blacktarimmunity.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "biomecoldImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "coldimmunity",
- "effectConfig" : {},
- "defaultDuration" : 120,
- "scripts" : [
- "coldimmunity.lua"
- ]
- }
- function init()
- script.setUpdateDelta(0)
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "fedhoney",
- "effectConfig" : {},
- "defaultDuration" : 300,
- "scripts" : [
- "fedhoney.lua"
- ],
- "label" : "Too much Honey"
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "ffextremecoldImmunity", amount = 1},
- {stat = "biomecoldImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "ffextremecoldimmunity",
- "effectConfig" : {},
- "defaultDuration" : 60,
- "scripts" : [
- "ffextremecoldimmunity.lua"
- ],
- "label" : "Cold Immunity",
- "icon" : "/interface/statuses/biomecold.png"
- }
- {
- "name" : "ffextremecoldimmunityicon",
- "effectConfig" : {},
- "scripts" : [],
- "label" : "Cold Shld",
- "icon" : "/interface/statuses/biomecold.png"
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "ffextremeheatImmunity", amount = 1},
- {stat = "biomeheatImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "ffextremeheatimmunity",
- "effectConfig" : {},
- "defaultDuration" : 60,
- "scripts" : [
- "ffextremeheatimmunity.lua"
- ],
- "label" : "Heat Shld",
- "icon" : "/interface/statuses/biomeheat.png"
- }
- {
- "name" : "ffextremeheatimmunityicon",
- "effectConfig" : {},
- "scripts" : [],
- "label" : "Heat Shld",
- "icon" : "/interface/statuses/biomeheat.png"
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "ffextremeradiationImmunity", amount = 1},
- {stat = "biomeradiationImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "ffextremeradiationimmunity",
- "effectConfig" : {},
- "defaultDuration" : 60,
- "scripts" : [
- "ffextremeradiationimmunity.lua"
- ],
- "label" : "Rad Proof",
- "icon" : "/interface/statuses/biomeradioactive.png"
- }
- {
- "name" : "ffextremeradiationimmunityicon",
- "effectConfig" : {},
- "scripts" : [],
- "label" : "Rad Shld",
- "icon" : "/interface/statuses/biomeradioactive.png"
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "fireStatusImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "fireStatusImmunity",
- "effectConfig" : {},
- "defaultDuration" : 60,
- "scripts" : [
- "fireimmunity.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "fumudslowImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "fumudslowimmunity",
- "effectConfig" : {},
- "defaultDuration" : 120,
- "scripts" : [
- "fumudslowimmunity.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "biomeheatImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "heatimmunity",
- "effectConfig" : {},
- "defaultDuration" : 120,
- "scripts" : [
- "heatimmunity.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "honeyslowImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "honeyslowimmunity",
- "effectConfig" : {},
- "defaultDuration" : 120,
- "scripts" : [
- "honeyslowimmunity.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "iceslipImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "iceslipimmunity",
- "effectConfig" : {},
- "defaultDuration" : 120,
- "scripts" : [
- "iceslipimmunity.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({{stat = "beesting", baseMultiplier = -2}})
- effect.addStatModifierGroup({{stat = "beesting", tickDamagePercentage = 0}})
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "immunesting",
- "effectConfig" : {},
- "defaultDuration" : 120,
- "scripts" : [
- "immunesting.lua"
- ],
- "label" : "Sting Immunity",
- "icon" : "/interface/statuses/StingImmune.png"
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "insanityImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "insanityimmunity",
- "effectConfig" : {},
- "defaultDuration" : 120,
- "scripts" : [
- "insanityimmunity.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "jungleslowImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "jungleslowimmunity",
- "effectConfig" : {},
- "defaultDuration" : 60,
- "scripts" : [
- "jungleslowimmunity.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "lavaImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "lavaimmunity",
- "effectConfig" : {},
- "defaultDuration" : 60,
- "scripts" : [
- "lavaimmunity.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "liquidnitrogenImmunity", amount = 1},
- {stat = "nitrogenfreezeImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "liquidnitrogenimmunity",
- "effectConfig" : {},
- "defaultDuration" : 120,
- "scripts" : [
- "liquidnitrogenimmunity.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "poisonStatusImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "poisonStatusImmunity",
- "effectConfig" : {},
- "defaultDuration" : 60,
- "scripts" : [
- "poisonimmunity.lua"
- ],
- "label" : "Antidote",
- "icon" : "/interface/statuses/antidote.png"
- }
- {
- "name" : "poisonimmunityspongeweed",
- "effectConfig" : {},
- "defaultDuration" : 240,
- "scripts" : [
- "poisonimmunity.lua"
- ],
- "label" : "Antidote",
- "icon" : "/interface/statuses/antidote.png"
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "protoImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "protoimmunity",
- "effectConfig" : {},
- "defaultDuration" : 60,
- "scripts" : [
- "protoimmunity.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "pusImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "pusimmunity",
- "effectConfig" : {},
- "defaultDuration" : 60,
- "scripts" : [
- "pusimmunity.lua"
- ],
- "label" : "Pus Proof",
- "icon" : "/interface/statuses/antidote.png"
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "radiationburnImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "radiationburnimmunity",
- "effectConfig" : {},
- "defaultDuration" : 120,
- "scripts" : [
- "radiationburnimmunity.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "biomeradiationImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "radiationimmunity",
- "effectConfig" : {},
- "defaultDuration" : 120,
- "scripts" : [
- "radiationimmunity.lua"
- ],
- "label" : "Radiation Immunity",
- "icon" : "/interface/statuses/biomeradioactive.png"
- }
- {
- "name" : "radiationimmunityicon",
- "effectConfig" : {},
- "scripts" : [],
- "label" : "Rad Shld",
- "icon" : "/interface/statuses/biomeradioactive.png"
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "slimestickImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "slimestickimmunity",
- "effectConfig" : {},
- "defaultDuration" : 120,
- "scripts" : [
- "slimestickimmunity.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "slushslowImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "slushslowimmunity",
- "effectConfig" : {},
- "defaultDuration" : 60,
- "scripts" : [
- "slushslowimmunity.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "snowslowImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "snowslowimmunity",
- "effectConfig" : {},
- "defaultDuration" : 60,
- "scripts" : [
- "snowslowimmunity.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({
- {stat = "spiderwebImmunity", amount = 1}
- })
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "spiderwebimmunity",
- "effectConfig" : {},
- "defaultDuration" : 120,
- "scripts" : [
- "spiderwebimmunity.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({{stat = "fumudslowImmunity", amount = 1 }})
- effect.addStatModifierGroup({{stat = "jungleslowImmunity", amount = 1 }})
- baseValue = config.getParameter("healthBonus",0)*(status.resourceMax("health"))
- effect.addStatModifierGroup({{stat = "maxHealth", amount = baseValue }})
- local bounds = mcontroller.boundBox()
- script.setUpdateDelta(10)
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "raceapex",
- "effectConfig" : {
- "healthBonus" : 0.20
- },
- "defaultDuration" : 3,
- "scripts" : [
- "raceapex.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({{stat = "snowslowImmunity", amount = 1}})
- effect.addStatModifierGroup({{stat = "biomecoldImmunity", amount = 1}})
- effect.addStatModifierGroup({{stat = "iceStatusImmunity", amount = 1}})
- local bounds = mcontroller.boundBox()
- script.setUpdateDelta(10)
- end
- function update(dt)
- if mcontroller.falling() then
- mcontroller.controlParameters(config.getParameter("fallingParameters"))
- mcontroller.setYVelocity(math.max(mcontroller.yVelocity(), config.getParameter("maxFallSpeed")))
- end
- mcontroller.controlModifiers({
- speedModifier = 1.05,
- airJumpModifier = 1.05
- })
- end
- function uninit()
- end{
- "name" : "raceavali",
- "effectConfig" : {
- "healthBonus" : -0.10,
- "energyBonus" : 0.05,
- "fallingParameters" : {
- "airForce" : 40,
- "runSpeed" : 16,
- "walkSpeed" : 16
- },
- "maxFallSpeed" : -30
- },
- "defaultDuration" : 3,
- "scripts" : [
- "raceavali.lua"
- ]
- }
- {
- "particleEmitters" : {
- "embers" : {
- "enabled" : false,
- "emissionRate" : 0.0005,
- "particles" : [
- {
- "particle" : {
- "type" : "ember",
- "size" : 0.5,
- "color" : [55, 55, 55, 50],
- "fade" : 0.9,
- "destructionAction" : "shrink",
- "destructionTime" : 0.8,
- "position" : [0.0, 0.0],
- "offsetRegion" : [0, 0, 0, 0],
- "initialVelocity" : [0, 1],
- "finalVelocity" : [0, 1],
- "approach" : [0, 10],
- "timeToLive" : 0.01,
- "variance" : {
- }
- }
- }
- ]
- },
- "statustext" : {
- "enabled" : false,
- "emissionRate" : 0.0,
- "particles" : [
- {
- "particle" : {
- "type" : "text",
- "text" : "avian",
- "size" : 0.75,
- "color" : [150, 220, 220, 230],
- "fade" : 1,
- "destructionAction" : "shrink",
- "destructionTime" : 0.8,
- "position" : [0.0, 0.0],
- "offsetRegion" : [0, 0, 0, 0],
- "initialVelocity" : [0, 4],
- "finalVelocity" : [0, 1],
- "approach" : [0, 10],
- "timeToLive" : 0,
- "variance" : {
- }
- }
- }
- ]
- }
- }
- }
- function init()
- self.powerModifier = config.getParameter("powerModifier", 0)
- effect.addStatModifierGroup({{stat = "powerMultiplier", baseMultiplier = self.powerModifier}})
- effect.addStatModifierGroup({{stat = "fallDamageMultiplier", baseMultiplier = 0.35}})
- self.movementParams = mcontroller.baseParameters()
- local bounds = mcontroller.boundBox()
- script.setUpdateDelta(5)
- self.liquidMovementParameter = {
- airJumpProfile = {
- jumpSpeed = 30
- }
- }
- end
- function update(dt)
- mcontroller.controlParameters(self.liquidMovementParameter)
- if mcontroller.falling() then
- mcontroller.controlParameters(config.getParameter("fallingParameters"))
- mcontroller.setYVelocity(math.max(mcontroller.yVelocity(), config.getParameter("maxFallSpeed")))
- end
- end
- function uninit()
- end
- {
- "name" : "raceavian",
- "effectConfig" : {
- "powerModifier" : 1.075,
- "healthBonus" : -0.15,
- "energyBonus" : 0.1,
- "fallingParameters" : {
- "airForce" : 30,
- "runSpeed" : 14,
- "walkSpeed" : 14
- },
- "maxFallSpeed" : -39
- },
- "defaultDuration" : 3,
- "scripts" : [
- "raceavian.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({{stat = "fireStatusImmunity", amount = 1}})
- effect.addStatModifierGroup({{stat = "biomeheatImmunity", amount = 1}})
- effect.addStatModifierGroup({{stat = "maxHealth", amount = 20}})
- script.setUpdateDelta(0)
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "raceavikan",
- "effectConfig" : {},
- "defaultDuration" : 3,
- "scripts" : [
- "raceavikan.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({{stat = "maxBreath", amount = 200.0}})
- effect.addStatModifierGroup({{stat = "biooozeImmunity", amount = 1}})
- effect.addStatModifierGroup({{stat = "spiderwebImmunity", amount = 1}})
- effect.addStatModifierGroup({{stat = "blacktarImmunity", amount = 1}})
- local bounds = mcontroller.boundBox()
- script.setUpdateDelta(10)
- end
- function update(dt)
- mcontroller.controlModifiers({
- speedModifier = 1.05
- })
- end
- function uninit()
- end{
- "name" : "racefamiliar",
- "effectConfig" : {},
- "defaultDuration" : 3,
- "scripts" : [
- "racefamiliar.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({{stat = "insanityImmunity", amount = 1}})
- self.powerModifier = config.getParameter("powerModifier", 0)
- effect.addStatModifierGroup({{stat = "powerMultiplier", baseMultiplier = self.powerModifier}})
- effect.addStatModifierGroup({{stat = "fallDamageMultiplier", effectiveMultiplier = 0.50}})
- local bounds = mcontroller.boundBox()
- script.setUpdateDelta(10)
- end
- function update(dt)
- mcontroller.controlModifiers({
- speedModifier = 1.07,
- airJumpModifier = 1.15
- })
- end
- function uninit()
- end{
- "name" : "racefelins",
- "effectConfig" : {
- "powerModifier" : 1.08
- },
- "defaultDuration" : 3,
- "scripts" : [
- "racefelins.lua"
- ]
- }
- function init()
- self.powerModifier = config.getParameter("powerModifier", 0)
- effect.addStatModifierGroup({{stat = "powerMultiplier", baseMultiplier = self.powerModifier}})
- baseValue = config.getParameter("healthBonus",0)*(status.resourceMax("health"))
- effect.addStatModifierGroup({{stat = "maxHealth", amount = baseValue }})
- baseValue2 = config.getParameter("energyBonus",0)*(status.resourceMax("energy"))
- effect.addStatModifierGroup({{stat = "maxEnergy", amount = baseValue2 }})
- effect.addStatModifierGroup({{stat = "poisonStatusImmunity", amount = 1}})
- local bounds = mcontroller.boundBox()
- script.setUpdateDelta(10)
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "racefenerox",
- "effectConfig" : {
- "powerModifier" : 1.06,
- "healthBonus" : -0.05,
- "energyBonus" : 0.10
- },
- "defaultDuration" : 3,
- "scripts" : [
- "racefenerox.lua"
- ]
- }
- function init()
- baseValue = config.getParameter("healthBonus",0)*(status.resourceMax("health"))
- effect.addStatModifierGroup({{stat = "maxHealth", amount = baseValue }})
- baseValue2 = config.getParameter("energyBonus",0)*(status.resourceMax("energy"))
- effect.addStatModifierGroup({{stat = "maxEnergy", amount = baseValue2 }})
- effect.addStatModifierGroup({{stat = "breathDepletionRate", amount = 2.0 }})
- effect.addStatModifierGroup({{stat = "electricStatusImmunity", amount = 1}})
- script.setUpdateDelta(0)
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "racefloran",
- "effectConfig" : {
- "healthBonus" : -0.1,
- "energyBonus" : 0.15
- },
- "defaultDuration" : 3,
- "scripts" : [
- "racefloran.lua"
- ]
- }
- require("/scripts/vec2.lua")
- function init()
- inWater=0
- effect.addStatModifierGroup({{stat = "protection", amount = 7}})
- effect.addStatModifierGroup({{stat = "waterbreathProtection", amount = 1}})
- effect.addStatModifierGroup({{stat = "breathProtection", amount = 1}})
- effect.addStatModifierGroup({{stat = "poisonStatusImmunity", amount = 1}})
- effect.addStatModifierGroup({{stat = "beestingImmunity", amount = 1}})
- baseValue = config.getParameter("healthBonus",0)*(status.resourceMax("health"))
- effect.addStatModifierGroup({{stat = "maxHealth", amount = baseValue }})
- baseValue2 = config.getParameter("energyBonus",0)*(status.resourceMax("energy"))
- effect.addStatModifierGroup({{stat = "maxEnergy", amount = baseValue2 }})
- script.setUpdateDelta(5)
- end
- function isDry()
- local mouthPosition = vec2.add(mcontroller.position(), status.statusProperty("mouthPosition"))
- if not world.liquidAt(mouthPosition) then
- status.clearPersistentEffects("glitchweaken")
- status.clearPersistentEffects("glitchweaken2")
- status.clearPersistentEffects("glitchweaken3")
- inWater = 0
- end
- end
- function update(dt)
- local mouthPosition = vec2.add(mcontroller.position(), status.statusProperty("mouthPosition"))
- local mouthful = world.liquidAt(mouthposition)
- local summationForDebug = ""
- if mouthful then
- summationForDebug = "Liq:" .. mouthful .. "/" .. inWater
- else
- summationForDebug = "Liq:nil/" .. inWater
- end
- world.debugText(summationForDebug,{mouthPosition[1]-(string.len(summationForDebug)*0.25),mouthPosition[2]},"red")
- if world.liquidAt(mouthPosition) and inWater == 0 then
- status.setPersistentEffects("glitchweaken", {{stat = "protection", amount = -5}})
- status.setPersistentEffects("glitchweaken2", {{stat = "maxHealth", amount = -10}})
- status.setPersistentEffects("glitchweaken3", {{stat = "maxEnergy", amount = -20}})
- inWater = 1
- else
- isDry()
- end
- end
- function uninit()
- status.clearPersistentEffects("glitchweaken")
- status.clearPersistentEffects("glitchweaken2")
- status.clearPersistentEffects("glitchweaken3")
- end{
- "name" : "raceglitch",
- "effectConfig" : {
- "healthBonus" : 0.10,
- "energyBonus" : 0.05
- },
- "defaultDuration" : 3,
- "scripts" : [
- "raceglitch.lua"
- ]
- }
- function init()
- baseValue = config.getParameter("healthBonus",0)*(status.resourceMax("health"))
- effect.addStatModifierGroup({{stat = "maxHealth", amount = baseValue }})
- baseValue2 = config.getParameter("energyBonus",0)*(status.resourceMax("energy"))
- effect.addStatModifierGroup({{stat = "maxEnergy", amount = baseValue2 }})
- self.gritBoost = config.getParameter("gritBonus",0)
- effect.addStatModifierGroup({{stat = "grit", baseMultiplier = self.gritBoost }})
- self.movementParams = mcontroller.baseParameters()
- local bounds = mcontroller.boundBox()
- script.setUpdateDelta(5)
- self.liquidMovementParameter = {
- liquidJumpProfile = {
- jumpHoldTime = 0.275
- }
- }
- end
- function update(dt)
- mcontroller.controlParameters(self.liquidMovementParameter)
- end
- function uninit()
- end
- {
- "name" : "racehuman",
- "effectConfig" : {
- "healthBonus" : 0.15,
- "energyBonus" : 0.15,
- "gritBonus" : 0.25
- },
- "defaultDuration" : 3,
- "scripts" : [
- "racehuman.lua"
- ]
- }
- {
- "particleEmitters" : {
- "shieldblock" : {
- "enabled" : false,
- "emissionRate" : 0.0005,
- "particles" : [
- {
- "particle" : {
- "type" : "redcartoonstar",
- "size" : 0.5,
- "color" : [55, 55, 55, 50],
- "fade" : 0.9,
- "destructionAction" : "shrink",
- "destructionTime" : 0.8,
- "position" : [0.0, 0.0],
- "offsetRegion" : [0, 0, 0, 0],
- "initialVelocity" : [0, 1],
- "finalVelocity" : [0, 1],
- "approach" : [0, 10],
- "timeToLive" : 0.01,
- "variance" : {
- }
- }
- }
- ]
- },
- "statustext" : {
- "enabled" : false,
- "emissionRate" : 0.0,
- "particles" : [
- {
- "particle" : {
- "type" : "text",
- "text" : "hylotl",
- "size" : 0.75,
- "color" : [70, 55, 250, 230],
- "fade" : 1,
- "destructionAction" : "shrink",
- "destructionTime" : 0.8,
- "position" : [0.0, 0.0],
- "offsetRegion" : [0, 0, 0, 0],
- "initialVelocity" : [0, 4],
- "finalVelocity" : [0, 1],
- "approach" : [0, 10],
- "timeToLive" : 0,
- "variance" : {
- }
- }
- }
- ]
- }
- }
- }
- require("/scripts/vec2.lua")
- function init()
- inWater=0
- baseValue = config.getParameter("healthBonus",0)*(status.resourceMax("health"))
- effect.addStatModifierGroup({{stat = "maxHealth", amount = baseValue }})
- baseValue2 = config.getParameter("energyBonus",0)*(status.resourceMax("energy"))
- effect.addStatModifierGroup({{stat = "maxEnergy", amount = baseValue2 }})
- effect.addStatModifierGroup({{stat = "maxBreath", amount = 1500}})
- effect.addStatModifierGroup({{stat = "breathRegenerationRate", amount = 60}})
- effect.addStatModifierGroup({{stat = "wetImmunity", amount = 1}})
- script.setUpdateDelta(5)
- end
- function isDry()
- local mouthPosition = vec2.add(mcontroller.position(), status.statusProperty("mouthPosition"))
- if not world.liquidAt(mouthPosition) then
- status.clearPersistentEffects("hylotlprotection")
- status.clearPersistentEffects("hylotlprotection2")
- status.clearPersistentEffects("hylotlprotection3")
- status.clearPersistentEffects("hylotlprotection4")
- inWater = 0
- end
- end
- function update(dt)
- local mouthPosition = vec2.add(mcontroller.position(), status.statusProperty("mouthPosition"))
- local mouthful = world.liquidAt(mouthposition)
- local summationForDebug = ""
- if mouthful then
- summationForDebug = "Liq:" .. mouthful .. "/" .. inWater
- else
- summationForDebug = "Liq:nil/" .. inWater
- end
- world.debugText(summationForDebug,{mouthPosition[1]-(string.len(summationForDebug)*0.25),mouthPosition[2]},"red")
- if world.liquidAt(mouthPosition) and inWater == 0 then
- status.setPersistentEffects("hylotlprotection", {{stat = "protection", amount = 9}})
- status.setPersistentEffects("hylotlprotection2", {{stat = "perfectBlockLimit", amount = 2}})
- status.setPersistentEffects("hylotlprotection3", {{stat = "maxHealth", amount = 20}})
- status.setPersistentEffects("hylotlprotection4", {{stat = "fallDamageMultiplier", amount = 0.0}})
- inWater = 1
- else
- isDry()
- end
- end
- function uninit()
- status.clearPersistentEffects("hylotlprotection")
- status.clearPersistentEffects("hylotlprotection2")
- status.clearPersistentEffects("hylotlprotection3")
- status.clearPersistentEffects("hylotlprotection4")
- end{
- "name" : "racehylotl",
- "effectConfig" : {
- "healthBonus" : 0.10,
- "energyBonus" : -0.20
- },
- "defaultDuration" : 3,
- "scripts" : [
- "racehylotl.lua"
- ]
- }
- require("/scripts/vec2.lua")
- function init()
- inWater=0
- effect.addStatModifierGroup({{stat = "wetImmunity", amount = 1}})
- effect.addStatModifierGroup({{stat = "foodDelta", amount = -0.049}})
- script.setUpdateDelta(5)
- end
- function isDry()
- local mouthPosition = vec2.add(mcontroller.position(), status.statusProperty("mouthPosition"))
- if not world.liquidAt(mouthPosition) then
- status.clearPersistentEffects("hylotlprotection")
- status.clearPersistentEffects("hylotlprotection2")
- status.clearPersistentEffects("hylotlprotection3")
- status.clearPersistentEffects("hylotlprotection4")
- inWater = 0
- end
- end
- function update(dt)
- local mouthPosition = vec2.add(mcontroller.position(), status.statusProperty("mouthPosition"))
- if world.liquidAt(mouthPosition) and inWater == 0 then
- status.setPersistentEffects("hylotlprotection", {{stat = "foodDelta", amount = -0.025}})
- status.setPersistentEffects("hylotlprotection2", {{stat = "energyRegenBlockTime", amount = 1.2}})
- status.setPersistentEffects("hylotlprotection3", {{stat = "maxEnergy", amount = 12}})
- status.setPersistentEffects("hylotlprotection4", {{stat = "breathDepletionRate", amount = 1.5}})
- inWater = 1
- else
- isDry()
- end
- end
- function uninit()
- end{
- "name" : "raceinkling",
- "effectConfig" : {
- "healthBonus" : 0.25
- },
- "defaultDuration" : 3,
- "scripts" : [
- "raceinkling.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({{stat = "shieldRegen", amount = 2}})
- effect.addStatModifierGroup({{stat = "perfectBlockLimitRegen", amount = 1}})
- effect.addStatModifierGroup({{stat = "foodDelta", amount = -0.062}})
- local bounds = mcontroller.boundBox()
- script.setUpdateDelta(10)
- end
- function update(dt)
- mcontroller.controlModifiers({
- speedModifier = 1.10,
- airJumpModifier = 1.10
- })
- end
- function uninit()
- end{
- "name" : "racekemono",
- "effectConfig" : {
- "powerModifier" : 1.08,
- "healthDown" : 3
- },
- "defaultDuration" : 3,
- "scripts" : [
- "racekemono.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({{stat = "maxEnergy", amount = 40}})
- local bounds = mcontroller.boundBox()
- script.setUpdateDelta(10)
- end
- function update(dt)
- mcontroller.controlModifiers({
- speedModifier = 1.05,
- airJumpModifier = 1.05
- })
- end
- function uninit()
- end{
- "name" : "racekineptic",
- "effectConfig" : {
- "powerModifier" : 1.08,
- "healthDown" : 3
- },
- "defaultDuration" : 3,
- "scripts" : [
- "racekineptic.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({{stat = "maxHealth", amount = 20}})
- effect.addStatModifierGroup({{stat = "energyRegenPercentageRate", amount = 0.530}})
- effect.addStatModifierGroup({{stat = "fallDamageMultiplier", effectiveMultiplier = 0.50}})
- local bounds = mcontroller.boundBox()
- script.setUpdateDelta(10)
- end
- function update(dt)
- mcontroller.controlModifiers({
- speedModifier = 1.05,
- airJumpModifier = 1.10
- })
- end
- function uninit()
- end{
- "name" : "raceneko",
- "effectConfig" : {},
- "defaultDuration" : 3,
- "scripts" : [
- "raceneko.lua"
- ]
- }
- function init()
- baseValue = config.getParameter("healthBonus",0)*(status.resourceMax("health"))
- effect.addStatModifierGroup({{stat = "maxHealth", amount = baseValue }})
- baseValue2 = config.getParameter("energyBonus",0)*(status.resourceMax("energy"))
- effect.addStatModifierGroup({{stat = "maxEnergy", amount = baseValue2 }})
- self.gritBoost = config.getParameter("gritBonus",0)
- effect.addStatModifierGroup({{stat = "grit", baseMultiplier = self.gritBoost }})
- local bounds = mcontroller.boundBox()
- effect.addStatModifierGroup({{stat = "biomeradiationImmunity", amount = 1}})
- effect.addStatModifierGroup({{stat = "ffextremeradiationImmunity", amount = 1}})
- effect.addStatModifierGroup({{stat = "fireStatusImmunity", amount = 1}})
- script.setUpdateDelta(5)
- end
- function update(dt)
- mcontroller.controlModifiers({
- speedModifier = 1.085
- })
- end
- function uninit()
- end{
- "name" : "racenovakid",
- "effectConfig" : {
- "healthBonus" : -0.10,
- "energyBonus" : 0.40,
- "gritBonus" : 0.60
- },
- "defaultDuration" : 3,
- "scripts" : [
- "racenovakid.lua"
- ]
- }
- require("/scripts/vec2.lua")
- function init()
- inWater=0
- effect.addStatModifierGroup({{stat = "maxHealth", amount = 40}})
- effect.addStatModifierGroup({{stat = "waterbreathProtection", amount = 1}})
- effect.addStatModifierGroup({{stat = "wetImmunity", amount = 1}})
- script.setUpdateDelta(5)
- end
- function isDry()
- local mouthPosition = vec2.add(mcontroller.position(), status.statusProperty("mouthPosition"))
- if not world.liquidAt(mouthPosition) then
- status.removeEphemeralEffect("regenerationminor",math.huge)
- status.clearPersistentEffects("orcanaprotection")
- status.clearPersistentEffects("orcanaprotection2")
- status.clearPersistentEffects("orcanaprotection3")
- status.clearPersistentEffects("orcanaprotection4")
- inWater = 0
- end
- end
- function update(dt)
- local mouthPosition = vec2.add(mcontroller.position(), status.statusProperty("mouthPosition"))
- if world.liquidAt(mouthPosition) and inWater == 0 then
- status.addEphemeralEffect("regenerationminor",math.huge)
- status.setPersistentEffects("orcanaprotection2", {{stat = "foodDelta", amount = -0.03}})
- status.setPersistentEffects("orcanaprotection4", {{stat = "fallDamageMultiplier", amount = 0.0}})
- inWater = 1
- else
- isDry()
- end
- end
- function uninit()
- status.clearPersistentEffects("orcanaprotection")
- status.clearPersistentEffects("orcanaprotection2")
- status.clearPersistentEffects("orcanaprotection3")
- status.clearPersistentEffects("orcanaprotection4")
- end
- {
- "name" : "raceorcana",
- "effectConfig" : {},
- "defaultDuration" : 3,
- "scripts" : [
- "raceorcana.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({{stat = "liquidnitrogenImmunity", amount = 1}})
- effect.addStatModifierGroup({{stat = "biomecoldImmunity", amount = 1}})
- effect.addStatModifierGroup({{stat = "iceslipImmunity", amount = 1}})
- effect.addStatModifierGroup({{stat = "maxEnergy", amount = 20}})
- effect.addStatModifierGroup({{stat = "iceStatusImmunity", amount = 1}})
- script.setUpdateDelta(0)
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "racepeglaci",
- "effectConfig" : {},
- "defaultDuration" : 3,
- "scripts" : [
- "racepeglaci.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({{stat = "honeyslowImmunity", amount = 1}})
- effect.addStatModifierGroup({{stat = "grit", amount = 0.3}})
- effect.addStatModifierGroup({{stat = "beestingImmunity", amount = 1}})
- local bounds = mcontroller.boundBox()
- script.setUpdateDelta(10)
- end
- function update(dt)
- mcontroller.controlModifiers({
- speedModifier = 1.25
- })
- end
- function uninit()
- end{
- "name" : "raceponex",
- "effectConfig" : {},
- "defaultDuration" : 3,
- "scripts" : [
- "raceponex.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({{stat = "grit", amount = 0.5}})
- effect.addStatModifierGroup({{stat = "energyRegenBlockTime", amount = 1.25}})
- local bounds = mcontroller.boundBox()
- script.setUpdateDelta(10)
- end
- function update(dt)
- mcontroller.controlModifiers({
- speedModifier = 1.02,
- airJumpModifier = 1.04
- })
- end
- function uninit()
- end{
- "name" : "racesergal",
- "effectConfig" : {
- },
- "defaultDuration" : 3,
- "scripts" : [
- "racesergal.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({{stat = "beestingImmunity", amount = 1}})
- effect.addStatModifierGroup({{stat = "honeyslowImmunity", amount = 1}})
- effect.addStatModifierGroup({{stat = "fallDamageMultiplier", effectiveMultiplier = 0.20}})
- local bounds = mcontroller.boundBox()
- script.setUpdateDelta(10)
- end
- function update(dt)
- mcontroller.controlModifiers({
- speedModifier = 1.08,
- stickyForce = 0.35,
- airForce = 35.0,
- liquidForce = 20.0
- })
- end
- function uninit()
- end{
- "name" : "racevespoid",
- "effectConfig" : {
- },
- "defaultDuration" : 3,
- "scripts" : [
- "racevespoid.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({{stat = "shieldStaminaRegen", amount = 0.4}})
- effect.addStatModifierGroup({{stat = "foodDelta", amount = -0.04}})
- effect.addStatModifierGroup({{stat = "slimestickImmunity", amount = 1}})
- effect.addStatModifierGroup({{stat = "slimefrictionImmunity", amount = 1}})
- local bounds = mcontroller.boundBox()
- script.setUpdateDelta(10)
- end
- function update(dt)
- mcontroller.controlModifiers({
- speedModifier = 1.12
- })
- end
- function uninit()
- end{
- "name" : "raceviera",
- "effectConfig" : {},
- "defaultDuration" : 3,
- "scripts" : [
- "raceviera.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({{stat = "grit", amount = 0.4 }})
- effect.addStatModifierGroup({{stat = "jungleslowImmunity", amount = 1 }})
- baseValue = config.getParameter("healthBonus",0)*(status.resourceMax("health"))
- effect.addStatModifierGroup({{stat = "maxEnergy", amount = baseValue }})
- local bounds = mcontroller.boundBox()
- script.setUpdateDelta(10)
- end
- function update(dt)
- mcontroller.controlModifiers({
- speedModifier = 1.14
- })
- end
- function uninit()
- end{
- "name" : "racevulpes",
- "effectConfig" : {
- "healthBonus" : 0.12
- },
- "defaultDuration" : 3,
- "scripts" : [
- "racevulpes.lua"
- ]
- }
- function init()
- local bounds = mcontroller.boundBox()
- animator.setParticleEmitterOffsetRegion("jumpparticles", {bounds[1], bounds[2] + 0.2, bounds[3], bounds[2] + 0.3})
- end
- function update(dt)
- animator.setParticleEmitterActive("jumpparticles", config.getParameter("particles", true) and mcontroller.jumping())
- mcontroller.controlModifiers({
- airJumpModifier = 1.35
- })
- end
- function uninit()
- end
- {
- "name" : "jumpboost35",
- "effectConfig" : {},
- "defaultDuration" : 1,
- "scripts" : [
- "jumpboost35.lua"
- ],
- "animationConfig" : "jumpboost.animation",
- "label" : "Jump Boost",
- "icon" : "/interface/statuses/jumpboost.png"
- }
- {
- "particleEmitters" : {
- "embers" : {
- "enabled" : false,
- "emissionRate" : 0.0005,
- "particles" : [
- {
- "particle" : {
- "type" : "ember",
- "size" : 0.5,
- "color" : [55, 55, 55, 50],
- "fade" : 0.9,
- "destructionAction" : "shrink",
- "destructionTime" : 0.8,
- "position" : [0.0, 0.0],
- "offsetRegion" : [0, 0, 0, 0],
- "initialVelocity" : [0, 1],
- "finalVelocity" : [0, 1],
- "approach" : [0, 10],
- "timeToLive" : 0.01,
- "variance" : {
- }
- }
- }
- ]
- },
- "statustext" : {
- "enabled" : false,
- "emissionRate" : 0.0,
- "particles" : [
- {
- "particle" : {
- "type" : "text",
- "text" : "avian",
- "size" : 0.75,
- "color" : [150, 220, 220, 230],
- "fade" : 1,
- "destructionAction" : "shrink",
- "destructionTime" : 0.8,
- "position" : [0.0, 0.0],
- "offsetRegion" : [0, 0, 0, 0],
- "initialVelocity" : [0, 4],
- "finalVelocity" : [0, 1],
- "approach" : [0, 10],
- "timeToLive" : 0,
- "variance" : {
- }
- }
- }
- ]
- }
- }
- }
- function init()
- effect.addStatModifierGroup({ {stat = "gravrainImmunity", amount = 1} })
- local bounds = mcontroller.boundBox()
- self.powerModifier = config.getParameter("powerModifier", 0)
- effect.addStatModifierGroup({{stat = "powerMultiplier", baseMultiplier = self.powerModifier}})
- end
- function update()
- self.newGravityMultiplier = status.resource("customGravity")
- mcontroller.controlParameters({
- gravityMultiplier = config.getParameter("gravityModifier") * self.newGravityMultiplier
- })
- end
- function unit()
- end
- {
- "name" : "lowgravavian",
- "effectConfig" : {
- "gravityModifier" : 0.9
- },
- "defaultDuration" : 15,
- "scripts" : [
- "lowgrav.lua"
- ],
- "animationConfig" : "lowgravavian.animation"
- }
- {
- "name" : "maxenergyboostfloran",
- "effectConfig" : {
- "energyAmount" : 20
- },
- "defaultDuration" : 5,
- "scripts" : [ "maxenergyboost.lua"]
- }
- {
- "particleEmitters" : {
- "shadowgaseffect" : {
- "enabled" : true,
- "emissionRate" : 11.0,
- "particles" : [
- {
- "particle" : {
- "type" : "ember",
- "size" : 1.5,
- "color" : [45, 45, 220, 230],
- "fade" : 0.9,
- "destructionAction" : "shrink",
- "destructionTime" : 0.8,
- "position" : [0.0, 0.0],
- "offsetRegion" : [0, 0, 0, 0],
- "initialVelocity" : [0, 1],
- "finalVelocity" : [0, 1],
- "approach" : [0, 10],
- "timeToLive" : 0.3,
- "variance" : {}
- }
- }
- ]
- },
- "statustext" : {
- "enabled" : true,
- "emissionRate" : 1.0,
- "particles" : [
- {
- "particle" : {
- "type" : "text",
- "text" : "Shadow Gas!",
- "size" : 0.75,
- "color" : [150, 150, 150, 230],
- "fade" : 1,
- "destructionAction" : "shrink",
- "destructionTime" : 0.8,
- "position" : [0.0, 0.0],
- "offsetRegion" : [0, 0, 0, 0],
- "initialVelocity" : [0, 4],
- "finalVelocity" : [0, 1],
- "approach" : [0, 10],
- "timeToLive" : 1,
- "variance" : {}
- }
- }
- ]
- }
- }
- }
- function init()
- local bounds = mcontroller.boundBox()
- script.setUpdateDelta(5)
- self.liquidMovementParameter = {
- airForce = 35,
- liquidBuoyancy = 0.725,
- airJumpProfile = {
- jumpSpeed = 36.0
- }
- }
- end
- function update(dt)
- mcontroller.controlParameters(self.liquidMovementParameter)
- end
- function uninit()
- end{
- "name" : "raceavianmovement",
- "effectConfig" : {},
- "defaultDuration" : 1,
- "scripts" : [
- "raceavianmovement.lua"
- ],
- "animationConfig" : "raceavianmovement.animation"
- }
- function init()
- effect.addStatModifierGroup({{stat = "foodDelta", amount = -0.03}})
- effect.addStatModifierGroup({{stat = "fallDamageMultiplier", amount = 1.15}})
- effect.addStatModifierGroup({{stat = "energyRegenBlockTime", amount = 1.6}})
- effect.addStatModifierGroup({{stat = "energyRegenPercentageRate", amount = 0.05}})
- script.setUpdateDelta(5)
- end
- function update(dt)
- end
- function uninit()
- end{
- "name" : "attrition",
- "effectConfig" : {},
- "defaultDuration" : 1,
- "scripts" : [
- "attrition.lua"
- ]
- }
- function init()
- local bounds = mcontroller.boundBox()
- script.setUpdateDelta(5)
- self.healthRatio = 1
- end
- function update(dt)
- if status.statPositive("maxHealth") then
- self.healthRatio = status.resource("health") / status.stat("maxHealth")
- else
- self.healthRatio = 0
- end
- if self.healthRatio < 0.2 then
- status.setPersistentEffects("healthpower", {{stat = "powerMultiplier", baseMultiplier = 1.25}})
- elseif self.healthRatio < 0.3 then
- status.setPersistentEffects("healthpower", {{stat = "powerMultiplier", baseMultiplier = 1.20}})
- elseif self.healthRatio < 0.4 then
- status.setPersistentEffects("healthpower", {{stat = "powerMultiplier", baseMultiplier = 1.17}})
- elseif self.healthRatio < 0.5 then
- status.setPersistentEffects("healthpower", {{stat = "powerMultiplier", baseMultiplier = 1.14}})
- elseif self.healthRatio < 0.6 then
- status.setPersistentEffects("healthpower", {{stat = "powerMultiplier", baseMultiplier = 1.10}})
- elseif self.healthRatio < 0.7 then
- status.setPersistentEffects("healthpower", {{stat = "powerMultiplier", baseMultiplier = 1.07}})
- elseif self.healthRatio < 0.75 then
- status.setPersistentEffects("healthpower", {{stat = "powerMultiplier", baseMultiplier = 1.04}})
- else
- status.clearPersistentEffects("healthpower")
- end
- end
- function uninit()
- status.clearPersistentEffects("healthpower")
- end
- {
- "name" : "hpedge",
- "effectConfig" : {},
- "defaultDuration" : 3,
- "scripts" : [
- "hpedge.lua"
- ]
- }
- function init()
- effect.addStatModifierGroup({{stat = "foodDelta", amount = -0.062}})
- local bounds = mcontroller.boundBox()
- script.setUpdateDelta(10)
- end
- function update(dt)
- mcontroller.controlModifiers({
- speedModifier = 1.11,
- airJumpModifier = 1.15
- })
- end
- function uninit()
- end{
- "name" : "metabolism",
- "effectConfig" : {},
- "defaultDuration" : 1,
- "scripts" : [
- "metabolism.lua"
- ]
- }
- function init()
- local bounds = mcontroller.boundBox()
- script.setUpdateDelta(5)
- local foodvalue = status.resource("food")
- end
- function update(dt)
- if self.foodvalue == nil then
- foodvalue=1
- end
- self.foodvalue = status.resource("food")
- if self.foodvalue < 0.3 then
- status.setPersistentEffects("starvationpower", {{stat = "powerMultiplier", baseMultiplier = 1.30}})
- elseif self.foodvalue < 10 then
- status.setPersistentEffects("starvationpower", {{stat = "powerMultiplier", baseMultiplier = 1.25}})
- elseif self.foodvalue < 20 then
- status.setPersistentEffects("starvationpower", {{stat = "powerMultiplier", baseMultiplier = 1.20}})
- elseif self.foodvalue < 30 then
- status.setPersistentEffects("starvationpower", {{stat = "powerMultiplier", baseMultiplier = 1.16}})
- elseif self.foodvalue < 40 then
- status.setPersistentEffects("starvationpower", {{stat = "powerMultiplier", baseMultiplier = 1.12}})
- elseif self.foodvalue < 50 then
- status.setPersistentEffects("starvationpower", {{stat = "powerMultiplier", baseMultiplier = 1.07}})
- elseif self.foodvalue < 60 then
- status.setPersistentEffects("starvationpower", {{stat = "powerMultiplier", baseMultiplier = 1.03}})
- else
- status.setPersistentEffects("starvationpower", {{stat = "powerMultiplier", baseMultiplier = 1.00}})
- status.clearPersistentEffects("starvationpower")
- end
- end
- function uninit()
- end
- {
- "name" : "starvingedge",
- "effectConfig" : {},
- "defaultDuration" : 3,
- "scripts" : [
- "starvingedge.lua"
- ]
- }
- {
- "particleEmitters" : {
- "blood" : {
- "enabled" : true,
- "emissionRate" : 2.0,
- "particles" : [
- {
- "particle" : {
- "type" : "animated",
- "mode" : "LoopForever",
- "animation" : "/animations/statuseffects/heal/darkheal.animation",
- "size" : 1.0,
- "color" : [30, 250, 30, 230],
- "fade" : 0.9,
- "position" : [0.0, 0.0],
- "offsetRegion" : [0, 0, 0, 0],
- "initialVelocity" : [0, 1.0],
- "finalVelocity" : [0, 5.0],
- "approach" : [0, 10],
- "timeToLive" : 0.6,
- "variance" : {
- "initialVelocity" : [0.5, 1.0]
- }
- }
- }
- ]
- },
- "blood2" : {
- "enabled" : true,
- "emissionRate" : 2.0,
- "particles" : [
- {
- "particle" : {
- "type" : "animated",
- "mode" : "LoopForever",
- "animation" : "/animations/statuseffects/heal/darkheal2.animation",
- "size" : 1.0,
- "color" : [30, 250, 30, 230],
- "fade" : 0.9,
- "position" : [0.0, 0.0],
- "offsetRegion" : [0, 0, 0, 0],
- "initialVelocity" : [0, 1.0],
- "finalVelocity" : [0, 5.0],
- "approach" : [0, 10],
- "timeToLive" : 0.6,
- "variance" : {
- "initialVelocity" : [0.5, 1.0]
- }
- }
- }
- ]
- },
- "statustext" : {
- "enabled" : true,
- "emissionRate" : 1.0,
- "particles" : [
- {
- "particle" : {
- "type" : "text",
- "text" : "Darkheal",
- "size" : 0.75,
- "color" : [225, 25, 225, 255],
- "fade" : 1,
- "destructionAction" : "shrink",
- "destructionTime" : 0.8,
- "position" : [0.0, 0.0],
- "offsetRegion" : [0, 0, 0, 0],
- "initialVelocity" : [0, 4],
- "finalVelocity" : [0, 1],
- "approach" : [0, 10],
- "timeToLive" : 1,
- "variance" : {
- }
- }
- }
- ]
- }
- }
- }
- function init()
- local bounds = mcontroller.boundBox()
- self.healingRate = 1.008 / config.getParameter("healTime", 220)
- script.setUpdateDelta(10)
- end
- function getLight()
- local position = mcontroller.position()
- position[1] = math.floor(position[1])
- position[2] = math.floor(position[2])
- local lightLevel = world.lightLevel(position)
- lightLevel = math.floor(lightLevel * 100)
- return lightLevel
- end
- function update(dt)
- valueVal = 5
- local lightLevel = getLight()
- if lightLevel <= 1 then
- self.healingRate = 1.01 / config.getParameter("healTime", 180)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif lightLevel <= 2 then
- self.healingRate = 1.008 / config.getParameter("healTime", 200)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif lightLevel <= 5 then
- self.healingRate = 1.007 / config.getParameter("healTime", 220)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif lightLevel <= 7 then
- self.healingRate = 1.006 / config.getParameter("healTime", 240)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif lightLevel <= 12 then
- self.healingRate = 1.005 / config.getParameter("healTime", 280)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif lightLevel <= 15 then
- self.healingRate = 1.004 / config.getParameter("healTime", 320)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif lightLevel <= 18 then
- self.healingRate = 1.003 / config.getParameter("healTime", 350)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif lightLevel <= 22 then
- self.healingRate = 1.002 / config.getParameter("healTime", 380)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif lightLevel <= 25 then
- self.healingRate = 1.001 / config.getParameter("healTime", 420)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- end
- end
- function uninit()
- end{
- "name" : "darkregenfenerox",
- "effectConfig" : {
- "healTime" : 220
- },
- "defaultDuration" : 60,
- "scripts" : [
- "darkregenfenerox.lua"
- ],
- "animationConfig" : "darkregeneration.animation"
- }
- {
- "particleEmitters" : {
- "blood" : {
- "enabled" : true,
- "emissionRate" : 2.0,
- "particles" : [
- {
- "particle" : {
- "type" : "animated",
- "mode" : "LoopForever",
- "animation" : "/animations/statuseffects/heal/lightheal.animation",
- "size" : 1.0,
- "color" : [30, 250, 30, 230],
- "fade" : 0.9,
- "position" : [0.0, 0.0],
- "offsetRegion" : [0, 0, 0, 0],
- "initialVelocity" : [0, 1.0],
- "finalVelocity" : [0, 5.0],
- "approach" : [0, 10],
- "timeToLive" : 0.6,
- "variance" : {
- "initialVelocity" : [0.5, 1.0]
- }
- }
- }
- ]
- },
- "statustext" : {
- "enabled" : true,
- "emissionRate" : 1.0,
- "particles" : [
- {
- "particle" : {
- "type" : "text",
- "text" : "regen",
- "size" : 0.75,
- "color" : [225, 25, 225, 255],
- "fade" : 1,
- "destructionAction" : "shrink",
- "destructionTime" : 0.8,
- "position" : [0.0, 0.0],
- "offsetRegion" : [0, 0, 0, 0],
- "initialVelocity" : [0, 4],
- "finalVelocity" : [0, 1],
- "approach" : [0, 10],
- "timeToLive" : 1,
- "variance" : {
- }
- }
- }
- ]
- }
- }
- }
- function init()
- local bounds = mcontroller.boundBox()
- script.setUpdateDelta(5)
- local foodvalue = status.resource("food")
- end
- function update(dt)
- if self.foodvalue == nil then
- foodvalue=1
- end
- self.foodvalue = status.resource("food")
- if self.foodvalue > 50 then
- self.healingRate = 1.001 / config.getParameter("healTime", 140)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif self.foodvalue > 60 then
- self.healingRate = 1.002 / config.getParameter("healTime", 140)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif self.foodvalue > 70 then
- self.healingRate = 1.003 / config.getParameter("healTime", 140)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- end
- end
- function uninit()
- end
- function init()
- local bounds = mcontroller.boundBox()
- self.healingRate = 1.01 / config.getParameter("healTime", 320)
- script.setUpdateDelta(5)
- end
- function getLight()
- local position = mcontroller.position()
- position[1] = math.floor(position[1])
- position[2] = math.floor(position[2])
- local lightLevel = world.lightLevel(position)
- lightLevel = math.floor(lightLevel * 100)
- return lightLevel
- end
- function update(dt)
- local lightLevel = getLight()
- if lightLevel > 95 then
- self.healingRate = 1.01 / config.getParameter("healTime", 140)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif lightLevel > 90 then
- self.healingRate = 1.008 / config.getParameter("healTime", 180)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif lightLevel > 80 then
- self.healingRate = 1.007 / config.getParameter("healTime", 220)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif lightLevel > 70 then
- self.healingRate = 1.006 / config.getParameter("healTime", 220)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif lightLevel > 65 then
- self.healingRate = 1.005 / config.getParameter("healTime", 220)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif lightLevel > 55 then
- self.healingRate = 1.004 / config.getParameter("healTime", 240)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif lightLevel > 45 then
- self.healingRate = 1.003 / config.getParameter("healTime", 260)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif lightLevel > 35 then
- self.healingRate = 1.002 / config.getParameter("healTime", 280)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif lightLevel > 25 then
- self.healingRate = 1.001 / config.getParameter("healTime", 320)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- end
- end
- function uninit()
- end
- {
- "name" : "foodregennovakid",
- "effectConfig" : {
- "healTime" : 130
- },
- "defaultDuration" : 1,
- "scripts" : [
- "foodregen.lua"
- ],
- "animationConfig" : "foodregen.animation"
- }
- {
- "particleEmitters" : {
- "blood" : {
- "enabled" : true,
- "emissionRate" : 2.0,
- "particles" : [
- {
- "particle" : {
- "type" : "animated",
- "mode" : "LoopForever",
- "animation" : "/animations/statuseffects/heal/lightheal.animation",
- "size" : 1.0,
- "color" : [30, 250, 30, 230],
- "fade" : 0.9,
- "position" : [0.0, 0.0],
- "offsetRegion" : [0, 0, 0, 0],
- "initialVelocity" : [0, 1.0],
- "finalVelocity" : [0, 5.0],
- "approach" : [0, 10],
- "timeToLive" : 0.6,
- "variance" : {
- "initialVelocity" : [0.5, 1.0]
- }
- }
- }
- ]
- },
- "statustext" : {
- "enabled" : true,
- "emissionRate" : 1.0,
- "particles" : [
- {
- "particle" : {
- "type" : "text",
- "text" : "Lightheal",
- "size" : 0.75,
- "color" : [225, 25, 225, 255],
- "fade" : 1,
- "destructionAction" : "shrink",
- "destructionTime" : 0.8,
- "position" : [0.0, 0.0],
- "offsetRegion" : [0, 0, 0, 0],
- "initialVelocity" : [0, 4],
- "finalVelocity" : [0, 1],
- "approach" : [0, 10],
- "timeToLive" : 1,
- "variance" : {
- }
- }
- }
- ]
- }
- }
- }
- function init()
- local bounds = mcontroller.boundBox()
- self.healingRate = 1.01 / config.getParameter("healTime", 320)
- script.setUpdateDelta(5)
- end
- function getLight()
- local position = mcontroller.position()
- position[1] = math.floor(position[1])
- position[2] = math.floor(position[2])
- local lightLevel = world.lightLevel(position)
- lightLevel = math.floor(lightLevel * 100)
- return lightLevel
- end
- function update(dt)
- local lightLevel = getLight()
- if lightLevel > 95 then
- self.healingRate = 1.01 / config.getParameter("healTime", 140)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif lightLevel > 90 then
- self.healingRate = 1.008 / config.getParameter("healTime", 180)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif lightLevel > 80 then
- self.healingRate = 1.007 / config.getParameter("healTime", 220)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif lightLevel > 70 then
- self.healingRate = 1.006 / config.getParameter("healTime", 220)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif lightLevel > 65 then
- self.healingRate = 1.005 / config.getParameter("healTime", 220)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif lightLevel > 55 then
- self.healingRate = 1.004 / config.getParameter("healTime", 240)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif lightLevel > 45 then
- self.healingRate = 1.003 / config.getParameter("healTime", 260)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif lightLevel > 35 then
- self.healingRate = 1.002 / config.getParameter("healTime", 280)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- elseif lightLevel > 25 then
- self.healingRate = 1.001 / config.getParameter("healTime", 320)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- end
- end
- function uninit()
- end
- {
- "name" : "lightregenfloran",
- "effectConfig" : {
- "healTime" : 130
- },
- "defaultDuration" : 1,
- "scripts" : [
- "lightregen.lua"
- ],
- "animationConfig" : "lightregen.animation"
- }
- function init()
- animator.setParticleEmitterOffsetRegion("healing", mcontroller.boundBox())
- animator.setParticleEmitterActive("healing", true)
- script.setUpdateDelta(5)
- self.healingRate = 1.005 / config.getParameter("healTime", 60)
- end
- function update(dt)
- status.modifyResourcePercentage("health", self.healingRate * dt)
- end
- function uninit()
- end{
- "name" : "regenerationminor",
- "effectConfig" : {
- "healTime" : 220
- },
- "defaultDuration" : 15,
- "scripts" : [
- "regenerationminor.lua"
- ],
- "animationConfig" : "regeneration.animation",
- "label" : "Regen 1",
- "icon" : "/interface/statuses/heal.png"
- }
- {
- "particleEmitters" : {
- "bubbles" : {
- "enabled" : true,
- "emissionRate" : 20.0,
- "particles" : [
- {
- "particle" : {
- "type" : "textured",
- "image" : "/projectiles/npcs/bubble/bubbles.png:0",
- "size" : 0.7,
- "fade" : 0.9,
- "position" : [0.0, 0.0],
- "offsetRegion" : [0, 0, 0, 0],
- "initialVelocity" : [0, 1],
- "finalVelocity" : [0, 3],
- "timeToLive" : 2,
- "underwaterOnly" : true,
- "layer" : "back",
- "variance" : {
- "size" : 0.3,
- "initialVelocity" : [0.5, 0.5]
- }
- }
- }
- ]
- }
- }
- }
- function init()
- local bounds = mcontroller.boundBox()
- animator.setParticleEmitterOffsetRegion("bubbles", mcontroller.boundBox())
- animator.setParticleEmitterActive("bubbles", true)
- self.mouthPosition = status.statusProperty("mouthPosition") or {0,0}
- self.mouthBounds = {self.mouthPosition[1], self.mouthPosition[2], self.mouthPosition[1], self.mouthPosition[2]}
- self.boostAmount = config.getParameter("boostAmount", 0)
- self.riseAmount = config.getParameter("riseAmount", 0)
- end
- function update(dt)
- mcontroller.controlParameters(self.liquidMovementParameter)
- local position = mcontroller.position()
- local worldMouthPosition = {
- self.mouthPosition[1] + position[1],
- self.mouthPosition[2] + position[2]
- }
- local liquidAtMouth = world.liquidAt(worldMouthPosition)
- if liquidAtMouth and (liquidAtMouth[1] == 1 or liquidAtMouth[1] == 2) then
- mcontroller.controlModifiers({
- speedModifier = self.boostAmount,
- liquidJumpModifier = self.riseAmount,
- liquidForce = 150
- })
- animator.setParticleEmitterActive("bubbles", mcontroller.running())
- else
- animator.setParticleEmitterActive("bubbles", false)
- end
- end
- function uninit()
- -- status.removeEphemeralEffect("liquidimmunity")
- end{
- "name" : "swimboost1",
- "effectConfig" : {
- "boostAmount" : 1,
- "riseAmount" : 1.2
- },
- "defaultDuration" : 60,
- "scripts" : [
- "swimboost1.lua"
- ],
- "animationConfig" : "swimboost1.animation",
- "label" : "Swim +",
- "icon" : "/interface/statuses/wet.png"
- }
- {
- "name" : "swimboost2",
- "effectConfig" : {
- "boostAmount" : 2,
- "riseAmount" : 1.5
- },
- "defaultDuration" : 60,
- "scripts" : [
- "swimboost1.lua"
- ],
- "animationConfig" : "swimboost1.animation",
- "label" : "Swim +",
- "icon" : "/interface/statuses/wet.png"
- }
- {
- "name" : "swimboost3",
- "effectConfig" : {
- "boostAmount" : 3,
- "riseAmount" : 2
- },
- "defaultDuration" : 60,
- "scripts" : [
- "swimboost1.lua"
- ],
- "animationConfig" : "swimboost1.animation",
- "label" : "Swim +",
- "icon" : "/interface/statuses/wet.png"
- }
- {
- "name" : "swimboost4",
- "effectConfig" : {
- "boostAmount" : 4,
- "riseAmount" : 2.4
- },
- "defaultDuration" : 60,
- "scripts" : [
- "swimboost1.lua"
- ],
- "animationConfig" : "swimboost1.animation",
- "label" : "Swim +",
- "icon" : "/interface/statuses/wet.png"
- }
- {
- "name" : "swimboosthylotl1",
- "effectConfig" : {
- },
- "defaultDuration" : 5,
- "scripts" : [
- "swimboost.lua"
- ]
- }
- {
- "name" : "swimboostorcana1",
- "effectConfig" : {
- },
- "defaultDuration" : 5,
- "scripts" : [
- "swimboost.lua"
- ]
- }
- INDEX version1.0friendlyNameFrackin' Raceslink'steam://url/CommunityFilePage/729492334steamContentId 729492334description¶Q*Disclaimer: Adding this mod to a character is a permanent choice, and will affect any characters created while it is installed.*
- Used in tandem with FrackinUniverse, this mod adds species-specific powers to both vanilla and player-made races.
- *Should now function without FrackinUniverse, but you'll have useless immunities in some cases. It should still be playable*
- *Does not add races*
- Racial Abilities
- -----------------------
- Each race is different. Also please note that while I try to keep these lists up to date, the most accurate list of abilities will always be the in-game character creation screen tooltips for the various races.
- HUMAN:
- --------------------
- Max Health + 15%
- Max Energy +15%
- 25% Knockback Resistance
- Max Food + 30 (total 100, from vanilla 70)
- Jump Hold Time +0.02s
- Perfect Blocks increase Defense. Failing a block restores defense to normal.
- AVIAN:
- ------------
- Avians are great if you like to jump high and cause a lot of pain. They are also quite mobile, as they have a reduced falling speed that keeps them safer from falls.
- Avian Rage: 8% base damage increase, with additional increases as you take more damage (maximum +33%).
- HP -15%
- Energy +10%
- Jump Speed increase
- 65% reduction in Fall Damage
- Slightly slowed falling speed
- APEX
- -----------------
- Apex are swift and potent, but need to ingest a bit more food than other races.
- High Metabolism: Increased food requirement, but gain +11% speed and +15% jump
- Immune to Jungle tiles
- Immune to Mud tiles
- Max HP +20%
- FLORAN
- --------------
- Floran are unique to play as their bonuses revolve around sunlight and food.
- Photosynthesis: Regenerate your HP during sunlight hours no matter where you are
- Floran Hunger: As you get hungrier your damage increases. Near starvation, you have a substantial boost.
- HP -5%
- Energy +15%
- Reduced Breath Depletion rate. You won't drown as fast.
- HYLOTL
- -----------------
- True warrior spirits, Hylotl are especially useful when wielding a shield , or underwater.
- Hylotl Genes: While submerged in liquid you gain +9 protection, +20 HP and are highly mobile underwater. While Hylotl cannot breathe underwater, they do gain an enormous set of lungs which grants them +1400s additional air capacity.
- Stalwart Defense: When using a shield and successfully Perfect Blocking you regain HP. Each successive Perfect Block increases the regen rate. Failing a perfect block cancels the bonus.
- Max Health +20
- “Wet†Status effect doesn’t affect them
- GLITCH
- -------------------
- Glitch are clunky and tough, and their medieval way of life has them well prepared when using a shield.
- Glitch Combat Training: When Perfect Blocking with a shield you gain a damage bonus. Each successive Perfect Block increases this bonus. Failing a block will reset the count.
- Attrition: Glitch need far less food than other races. However, this comes at a cost of an additional 15% Falling Damage.
- in testing: when immersed in water, lose some HP and Energy
- HP + 10%
- Energy +5%
- Protection +7
- Needs no air
- Poison Immunity
- Bee Sting Immunity
- NOVAKID
- -----------------
- Novakids are an interesting race, with some rather handy immunities. So long as their hungry star-like centres are kept well fed, they gain slight regeneration.
- HP -10%
- Energy +40%
- 60% Knockback Resistance
- Glow in the Dark
- Speed +8.5%
- TOTAL Radiation Immunity
- Burn Immunity
- FELIN
- -------------------
- 50% fall damage
- Run Speed +7%
- Jump Height +15%
- Damage +8%
- Insanity Immunity
- ORCANA
- ----------------
- HP +40
- Breath protection
- Immune to wet effect
- Underwater:
- Swim Boost 2
- Max Food increase
- Regeneration
- PEGLACI
- ---------------:
- Liquid Nitrogen Immunity
- Basic Cold Immunity
- +20 Energy
- Ice Slip Immunity
- AVALI:
- ------------------
- Fall slower and have slight gliding ability.
- +5% speed
- +5% jump
- +5% damage
- Immune to Snow
- Immune to Cold
- FENEROX
- ---------------------
- HP -5%
- Energy +10%
- +6% Damage
- Nocturnal Regeneration
- Metabolism: Increased food consumption, but gain +11% speed and +15% jump
- Immunity to Poison
- AVIKAN:
- --------------------
- Fire Immunity
- Heat Immunity
- HP + 20
- PONEX
- ------------
- +25% ground speed
- Immune to Bees
- Immune to Honey
- Knockback Resistance 50%
- VIERA
- --------------
- +12% Speed
- Immunity to Slime
- Reduced hunger rate
- reduced shield stamina regen time
- Perfect Blocking with a shield restores some energy. Successive blocks add to the amount healed. Failing a block resets the count.
- FAMILIAR
- --------------------
- Glow in the Dark
- Breath Amount x2
- Bio-Ooze immunity
- Spiderweb immunity
- Black Tar immunity
- INKLING
- ----------------
- decreased hunger rate
- Immune to Wet effect
- Underwater:
- Greater decreased hunger
- breath depletion rate reduction
- faster Energy regen
- Max Energy +12
- MUNARI
- --------------
- Nothing but a swim boost yet
- KEMONO
- ---------------
- Decreased Shield Regen time
- Perfect Block limit regen reduced
- Reduced food consumption rate
- Speed +10%
- Jump +10%
- KINEPTIC
- -------------------
- Max Energy +40
- Energy Regen increase
- Speed +5%
- Jump +5%
- NEKO
- -------------
- HP + 20
- Increased energy regen amount
- 50% fall damage reduction
- Speed +5%
- Jump +10%
- VULPES
- --------------
- Knockback reduced 40%
- immune to jungle tile slowdown
- Energy +12%
- Speed +14%
- VESPOIDS
- -------------------
- 70% fall damage reduction
- sting immunity
- honey immunity
- +8% speed
- Slighly sticky on walls (experiment)
- reduced air force
- Q: Do I need Frackin' Universe to use this mod?
- A: No, but most immunities of your race will be rendered pointless. But the rest is playable without issue.
- Q: I installed the mod but the races aren't showing up! What do?
- A: This mod does not add races, it simply makes each unique. Go to the race mod pages to get them
- Q: Why is [mechanic] not working?
- A:Likely because of a bug. let me know and I'll see what I can do. The more detail you can give me, the better.
- Q: Can you add [insert race name]? That's be sweet!
- A: Potentially! If you don't see it suggested in the comments already, mention it! It may take awhile, though.
- Q: I think this race should be [different mechanic] instead. Can you change it?
- A: Either yes or no. Thank you for the suggestions, but please accept a no if given.
- Q: Why are you so awesome?
- A: Well, because [redacted].
- Q: Why isn't this mod working?
- A: Question 1. If you have that, question 2. If that's not the issue, question 3.
- Q: Will this mod work with your existing character?
- A: Yes
- Q. Is your favorite race mod supported?
- A: Use your eyes and read. Do you see it listed? Yes? Then yes. No? Then no.
- Q: "My races powers aren't working"
- A: You've probably installed something wrong or there is a conflict with another mod or something to this effect. All current abilities have been tested and are functioning perfectly well.
- Q: Can you make a version without negative effects for races? (or) Can you make a version with different abilities. I don't like these!
- A: No. If you dislike the powers, don't use the mod. I'm not making multiple versions. Amazingly, I have a personal life.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement