Advertisement
Guest User

my anus is bleeding

a guest
Aug 12th, 2016
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 158.47 KB | None | 0 0
  1. SBAsset6 ò´familiars now glow
  2. [core]
  3. repositoryformatversion = 0
  4. filemode = false
  5. bare = false
  6. logallrefupdates = true
  7. symlinks = false
  8. ignorecase = true
  9. [remote "origin"]
  10. url = https://github.com/sayterdarkwynd/FrackinRaces.git
  11. fetch = +refs/heads/*:refs/remotes/origin/*
  12. [branch "master"]
  13. remote = origin
  14. merge = refs/heads/master
  15. Unnamed repository; edit this file 'description' to name the repository.
  16. 1f70ae36b156d447137d5fcb8aabd33d1b80ba6c branch 'master' of https://github.com/sayterdarkwynd/FrackinRaces
  17. ref: refs/heads/master
  18. #!/bin/sh
  19. #
  20. # An example hook script to check the commit log message taken by
  21. # applypatch from an e-mail message.
  22. #
  23. # The hook should exit with non-zero status after issuing an
  24. # appropriate message if it wants to stop the commit. The hook is
  25. # allowed to edit the commit message file.
  26. #
  27. # To enable this hook, rename this file to "applypatch-msg".
  28.  
  29. . git-sh-setup
  30. commitmsg="$(git rev-parse --git-path hooks/commit-msg)"
  31. test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"}
  32. :
  33. #!/bin/sh
  34. #
  35. # An example hook script to check the commit log message.
  36. # Called by "git commit" with one argument, the name of the file
  37. # that has the commit message. The hook should exit with non-zero
  38. # status after issuing an appropriate message if it wants to stop the
  39. # commit. The hook is allowed to edit the commit message file.
  40. #
  41. # To enable this hook, rename this file to "commit-msg".
  42.  
  43. # Uncomment the below to add a Signed-off-by line to the message.
  44. # Doing this in a hook is a bad idea in general, but the prepare-commit-msg
  45. # hook is more suited to it.
  46. #
  47. # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
  48. # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
  49.  
  50. # This example catches duplicate Signed-off-by lines.
  51.  
  52. test "" = "$(grep '^Signed-off-by: ' "$1" |
  53. sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
  54. echo >&2 Duplicate Signed-off-by lines.
  55. exit 1
  56. }
  57. #!/bin/sh
  58. #
  59. # An example hook script to prepare a packed repository for use over
  60. # dumb transports.
  61. #
  62. # To enable this hook, rename this file to "post-update".
  63.  
  64. exec git update-server-info
  65. #!/bin/sh
  66. #
  67. # An example hook script to verify what is about to be committed
  68. # by applypatch from an e-mail message.
  69. #
  70. # The hook should exit with non-zero status after issuing an
  71. # appropriate message if it wants to stop the commit.
  72. #
  73. # To enable this hook, rename this file to "pre-applypatch".
  74.  
  75. . git-sh-setup
  76. precommit="$(git rev-parse --git-path hooks/pre-commit)"
  77. test -x "$precommit" && exec "$precommit" ${1+"$@"}
  78. :
  79. #!/bin/sh
  80. #
  81. # An example hook script to verify what is about to be committed.
  82. # Called by "git commit" with no arguments. The hook should
  83. # exit with non-zero status after issuing an appropriate message if
  84. # it wants to stop the commit.
  85. #
  86. # To enable this hook, rename this file to "pre-commit".
  87.  
  88. if git rev-parse --verify HEAD >/dev/null 2>&1
  89. then
  90. against=HEAD
  91. else
  92. # Initial commit: diff against an empty tree object
  93. against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
  94. fi
  95.  
  96. # If you want to allow non-ASCII filenames set this variable to true.
  97. allownonascii=$(git config --bool hooks.allownonascii)
  98.  
  99. # Redirect output to stderr.
  100. exec 1>&2
  101.  
  102. # Cross platform projects tend to avoid non-ASCII filenames; prevent
  103. # them from being added to the repository. We exploit the fact that the
  104. # printable range starts at the space character and ends with tilde.
  105. if [ "$allownonascii" != "true" ] &&
  106. # Note that the use of brackets around a tr range is ok here, (it's
  107. # even required, for portability to Solaris 10's /usr/bin/tr), since
  108. # the square bracket bytes happen to fall in the designated range.
  109. test $(git diff --cached --name-only --diff-filter=A -z $against |
  110. LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
  111. then
  112. cat <<\EOF
  113. Error: Attempt to add a non-ASCII file name.
  114.  
  115. This can cause problems if you want to work with people on other platforms.
  116.  
  117. To be portable it is advisable to rename the file.
  118.  
  119. If you know what you are doing you can disable this check using:
  120.  
  121. git config hooks.allownonascii true
  122. EOF
  123. exit 1
  124. fi
  125.  
  126. # If there are whitespace errors, print the offending file names and fail.
  127. exec git diff-index --check --cached $against --
  128. #!/bin/sh
  129.  
  130. # An example hook script to verify what is about to be pushed. Called by "git
  131. # push" after it has checked the remote status, but before anything has been
  132. # pushed. If this script exits with a non-zero status nothing will be pushed.
  133. #
  134. # This hook is called with the following parameters:
  135. #
  136. # $1 -- Name of the remote to which the push is being done
  137. # $2 -- URL to which the push is being done
  138. #
  139. # If pushing without using a named remote those arguments will be equal.
  140. #
  141. # Information about the commits which are being pushed is supplied as lines to
  142. # the standard input in the form:
  143. #
  144. # <local ref> <local sha1> <remote ref> <remote sha1>
  145. #
  146. # This sample shows how to prevent push of commits where the log message starts
  147. # with "WIP" (work in progress).
  148.  
  149. remote="$1"
  150. url="$2"
  151.  
  152. z40=0000000000000000000000000000000000000000
  153.  
  154. while read local_ref local_sha remote_ref remote_sha
  155. do
  156. if [ "$local_sha" = $z40 ]
  157. then
  158. # Handle delete
  159. :
  160. else
  161. if [ "$remote_sha" = $z40 ]
  162. then
  163. # New branch, examine all commits
  164. range="$local_sha"
  165. else
  166. # Update to existing branch, examine new commits
  167. range="$remote_sha..$local_sha"
  168. fi
  169.  
  170. # Check for WIP commit
  171. commit=`git rev-list -n 1 --grep '^WIP' "$range"`
  172. if [ -n "$commit" ]
  173. then
  174. echo >&2 "Found WIP commit in $local_ref, not pushing"
  175. exit 1
  176. fi
  177. fi
  178. done
  179.  
  180. exit 0
  181. #!/bin/sh
  182. #
  183. # Copyright (c) 2006, 2008 Junio C Hamano
  184. #
  185. # The "pre-rebase" hook is run just before "git rebase" starts doing
  186. # its job, and can prevent the command from running by exiting with
  187. # non-zero status.
  188. #
  189. # The hook is called with the following parameters:
  190. #
  191. # $1 -- the upstream the series was forked from.
  192. # $2 -- the branch being rebased (or empty when rebasing the current branch).
  193. #
  194. # This sample shows how to prevent topic branches that are already
  195. # merged to 'next' branch from getting rebased, because allowing it
  196. # would result in rebasing already published history.
  197.  
  198. publish=next
  199. basebranch="$1"
  200. if test "$#" = 2
  201. then
  202. topic="refs/heads/$2"
  203. else
  204. topic=`git symbolic-ref HEAD` ||
  205. exit 0 ;# we do not interrupt rebasing detached HEAD
  206. fi
  207.  
  208. case "$topic" in
  209. refs/heads/??/*)
  210. ;;
  211. *)
  212. exit 0 ;# we do not interrupt others.
  213. ;;
  214. esac
  215.  
  216. # Now we are dealing with a topic branch being rebased
  217. # on top of master. Is it OK to rebase it?
  218.  
  219. # Does the topic really exist?
  220. git show-ref -q "$topic" || {
  221. echo >&2 "No such branch $topic"
  222. exit 1
  223. }
  224.  
  225. # Is topic fully merged to master?
  226. not_in_master=`git rev-list --pretty=oneline ^master "$topic"`
  227. if test -z "$not_in_master"
  228. then
  229. echo >&2 "$topic is fully merged to master; better remove it."
  230. exit 1 ;# we could allow it, but there is no point.
  231. fi
  232.  
  233. # Is topic ever merged to next? If so you should not be rebasing it.
  234. only_next_1=`git rev-list ^master "^$topic" ${publish} | sort`
  235. only_next_2=`git rev-list ^master ${publish} | sort`
  236. if test "$only_next_1" = "$only_next_2"
  237. then
  238. not_in_topic=`git rev-list "^$topic" master`
  239. if test -z "$not_in_topic"
  240. then
  241. echo >&2 "$topic is already up-to-date with master"
  242. exit 1 ;# we could allow it, but there is no point.
  243. else
  244. exit 0
  245. fi
  246. else
  247. not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"`
  248. /usr/bin/perl -e '
  249. my $topic = $ARGV[0];
  250. my $msg = "* $topic has commits already merged to public branch:\n";
  251. my (%not_in_next) = map {
  252. /^([0-9a-f]+) /;
  253. ($1 => 1);
  254. } split(/\n/, $ARGV[1]);
  255. for my $elem (map {
  256. /^([0-9a-f]+) (.*)$/;
  257. [$1 => $2];
  258. } split(/\n/, $ARGV[2])) {
  259. if (!exists $not_in_next{$elem->[0]}) {
  260. if ($msg) {
  261. print STDERR $msg;
  262. undef $msg;
  263. }
  264. print STDERR " $elem->[1]\n";
  265. }
  266. }
  267. ' "$topic" "$not_in_next" "$not_in_master"
  268. exit 1
  269. fi
  270.  
  271. exit 0
  272.  
  273. ################################################################
  274.  
  275. This sample hook safeguards topic branches that have been
  276. published from being rewound.
  277.  
  278. The workflow assumed here is:
  279.  
  280. * Once a topic branch forks from "master", "master" is never
  281. merged into it again (either directly or indirectly).
  282.  
  283. * Once a topic branch is fully cooked and merged into "master",
  284. it is deleted. If you need to build on top of it to correct
  285. earlier mistakes, a new topic branch is created by forking at
  286. the tip of the "master". This is not strictly necessary, but
  287. it makes it easier to keep your history simple.
  288.  
  289. * Whenever you need to test or publish your changes to topic
  290. branches, merge them into "next" branch.
  291.  
  292. The script, being an example, hardcodes the publish branch name
  293. to be "next", but it is trivial to make it configurable via
  294. $GIT_DIR/config mechanism.
  295.  
  296. With this workflow, you would want to know:
  297.  
  298. (1) ... if a topic branch has ever been merged to "next". Young
  299. topic branches can have stupid mistakes you would rather
  300. clean up before publishing, and things that have not been
  301. merged into other branches can be easily rebased without
  302. affecting other people. But once it is published, you would
  303. not want to rewind it.
  304.  
  305. (2) ... if a topic branch has been fully merged to "master".
  306. Then you can delete it. More importantly, you should not
  307. build on top of it -- other people may already want to
  308. change things related to the topic as patches against your
  309. "master", so if you need further changes, it is better to
  310. fork the topic (perhaps with the same name) afresh from the
  311. tip of "master".
  312.  
  313. Let's look at this example:
  314.  
  315. o---o---o---o---o---o---o---o---o---o "next"
  316. / / / /
  317. / a---a---b A / /
  318. / / / /
  319. / / c---c---c---c B /
  320. / / / \ /
  321. / / / b---b C \ /
  322. / / / / \ /
  323. ---o---o---o---o---o---o---o---o---o---o---o "master"
  324.  
  325.  
  326. A, B and C are topic branches.
  327.  
  328. * A has one fix since it was merged up to "next".
  329.  
  330. * B has finished. It has been fully merged up to "master" and "next",
  331. and is ready to be deleted.
  332.  
  333. * C has not merged to "next" at all.
  334.  
  335. We would want to allow C to be rebased, refuse A, and encourage
  336. B to be deleted.
  337.  
  338. To compute (1):
  339.  
  340. git rev-list ^master ^topic next
  341. git rev-list ^master next
  342.  
  343. if these match, topic has not merged in next at all.
  344.  
  345. To compute (2):
  346.  
  347. git rev-list master..topic
  348.  
  349. if this is empty, it is fully merged to "master".
  350. #!/bin/sh
  351. #
  352. # An example hook script to prepare the commit log message.
  353. # Called by "git commit" with the name of the file that has the
  354. # commit message, followed by the description of the commit
  355. # message's source. The hook's purpose is to edit the commit
  356. # message file. If the hook fails with a non-zero status,
  357. # the commit is aborted.
  358. #
  359. # To enable this hook, rename this file to "prepare-commit-msg".
  360.  
  361. # This hook includes three examples. The first comments out the
  362. # "Conflicts:" part of a merge commit.
  363. #
  364. # The second includes the output of "git diff --name-status -r"
  365. # into the message, just before the "git status" output. It is
  366. # commented because it doesn't cope with --amend or with squashed
  367. # commits.
  368. #
  369. # The third example adds a Signed-off-by line to the message, that can
  370. # still be edited. This is rarely a good idea.
  371.  
  372. case "$2,$3" in
  373. merge,)
  374. /usr/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;;
  375.  
  376. # ,|template,)
  377. # /usr/bin/perl -i.bak -pe '
  378. # print "\n" . `git diff --cached --name-status -r`
  379. # if /^#/ && $first++ == 0' "$1" ;;
  380.  
  381. *) ;;
  382. esac
  383.  
  384. # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
  385. # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
  386. #!/bin/sh
  387. #
  388. # An example hook script to block unannotated tags from entering.
  389. # Called by "git receive-pack" with arguments: refname sha1-old sha1-new
  390. #
  391. # To enable this hook, rename this file to "update".
  392. #
  393. # Config
  394. # ------
  395. # hooks.allowunannotated
  396. # This boolean sets whether unannotated tags will be allowed into the
  397. # repository. By default they won't be.
  398. # hooks.allowdeletetag
  399. # This boolean sets whether deleting tags will be allowed in the
  400. # repository. By default they won't be.
  401. # hooks.allowmodifytag
  402. # This boolean sets whether a tag may be modified after creation. By default
  403. # it won't be.
  404. # hooks.allowdeletebranch
  405. # This boolean sets whether deleting branches will be allowed in the
  406. # repository. By default they won't be.
  407. # hooks.denycreatebranch
  408. # This boolean sets whether remotely creating branches will be denied
  409. # in the repository. By default this is allowed.
  410. #
  411.  
  412. # --- Command line
  413. refname="$1"
  414. oldrev="$2"
  415. newrev="$3"
  416.  
  417. # --- Safety check
  418. if [ -z "$GIT_DIR" ]; then
  419. echo "Don't run this script from the command line." >&2
  420. echo " (if you want, you could supply GIT_DIR then run" >&2
  421. echo " $0 <ref> <oldrev> <newrev>)" >&2
  422. exit 1
  423. fi
  424.  
  425. if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
  426. echo "usage: $0 <ref> <oldrev> <newrev>" >&2
  427. exit 1
  428. fi
  429.  
  430. # --- Config
  431. allowunannotated=$(git config --bool hooks.allowunannotated)
  432. allowdeletebranch=$(git config --bool hooks.allowdeletebranch)
  433. denycreatebranch=$(git config --bool hooks.denycreatebranch)
  434. allowdeletetag=$(git config --bool hooks.allowdeletetag)
  435. allowmodifytag=$(git config --bool hooks.allowmodifytag)
  436.  
  437. # check for no description
  438. projectdesc=$(sed -e '1q' "$GIT_DIR/description")
  439. case "$projectdesc" in
  440. "Unnamed repository"* | "")
  441. echo "*** Project description file hasn't been set" >&2
  442. exit 1
  443. ;;
  444. esac
  445.  
  446. # --- Check types
  447. # if $newrev is 0000...0000, it's a commit to delete a ref.
  448. zero="0000000000000000000000000000000000000000"
  449. if [ "$newrev" = "$zero" ]; then
  450. newrev_type=delete
  451. else
  452. newrev_type=$(git cat-file -t $newrev)
  453. fi
  454.  
  455. case "$refname","$newrev_type" in
  456. refs/tags/*,commit)
  457. # un-annotated tag
  458. short_refname=${refname##refs/tags/}
  459. if [ "$allowunannotated" != "true" ]; then
  460. echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
  461. echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
  462. exit 1
  463. fi
  464. ;;
  465. refs/tags/*,delete)
  466. # delete tag
  467. if [ "$allowdeletetag" != "true" ]; then
  468. echo "*** Deleting a tag is not allowed in this repository" >&2
  469. exit 1
  470. fi
  471. ;;
  472. refs/tags/*,tag)
  473. # annotated tag
  474. if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1
  475. then
  476. echo "*** Tag '$refname' already exists." >&2
  477. echo "*** Modifying a tag is not allowed in this repository." >&2
  478. exit 1
  479. fi
  480. ;;
  481. refs/heads/*,commit)
  482. # branch
  483. if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then
  484. echo "*** Creating a branch is not allowed in this repository" >&2
  485. exit 1
  486. fi
  487. ;;
  488. refs/heads/*,delete)
  489. # delete branch
  490. if [ "$allowdeletebranch" != "true" ]; then
  491. echo "*** Deleting a branch is not allowed in this repository" >&2
  492. exit 1
  493. fi
  494. ;;
  495. refs/remotes/*,commit)
  496. # tracking branch
  497. ;;
  498. refs/remotes/*,delete)
  499. # delete tracking branch
  500. if [ "$allowdeletebranch" != "true" ]; then
  501. echo "*** Deleting a tracking branch is not allowed in this repository" >&2
  502. exit 1
  503. fi
  504. ;;
  505. *)
  506. # Anything else (is there anything else?)
  507. echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
  508. exit 1
  509. ;;
  510. esac
  511.  
  512. # --- Finished
  513. exit 0
  514. DIRC  ÂW’gjXW¬Þk,…[ ¤ gC6°ÀŒø§cR:\6ÉÅ#Ï Þ) .metadata W’í,ûÌW™áœ ¤ ¥~Æã…(Fkœ8=Áøg8‚,1¬‘
  515. _previewimage W¦¢N#2©°W‡ÓJ ¤ wž87qçïÚ’¹…”«›ìLl 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
  516. Ó#ð$ûf-ßji W
  517. *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#±È·
  518. ¸{·}î¤ ¸<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§ùé »
  519. ” ¤ o=yžxè˜Ó½ª
  520. “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‘)Ó\` ¤ ׇÂ
  521. '_‚ƒW‹ô"ƒ
  522. ¬{ 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
  523. ìŒ ¤ ÚQôÄ‹÷«ë§þ ÞÒo:-
  524. 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Ÿ²@¹¢ªèv 3>Æ" stats/effects/crit/backstab.lua WšÝ®.(püW›Žõb¥˜ ¤ Z“ßÔRŸ²@¹¢ªèv 3>Æ" !stats/effects/crit/critchance.lua W›´ª]/4W›Žõb¥˜ ¤ Z“ßÔRŸ²@¹¢ªèv 3>Æ" "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®IKk®{.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\
  525. 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î
  526. :Ð ¤
  527. Øí0¬rR€@Îø—
  528. ©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 :Æ[
  529. >stats/effects/fu_immunityeffects/beestingImmunity.statuseffect W¡JW@HW“Î 6ljd ¤ Çå$
  530. ‘³Œ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 ¤ ˜
  531. ò'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 ¤ Êêü/2aAF@Ð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 ¤ è
  532. ?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éek~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’ŒÂÈñ
  533. ^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 ¤ à>Ö‹$î¸dvV7Ì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 ¤ Иã'u R´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“Î!Ő ¤ ÍMRcéÇ
  534. ÎöŠ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
  535. 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¡JW‡ÓJ ¤ †õãŽNj«IôÂmìDð< ! ?stats/effects/fu_immunityeffects/slushslowimmunity.statuseffect W¡J@E¸W‡ÓJ ¤ —…<aá>
  536. -æ‰ñ àºLÈsÃŽ ä 5stats/effects/fu_immunityeffects/snowslowimmunity.lua W¡J˜ÜW‡ÓJ ¤ „Žõ&ò
  537. Â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±
  538. ä‡+€Œ° ‡N¡1MË -stats/effects/fu_racialabilities/raceapex.lua W’gj› W§ù¶DP ¤ “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燚”˜øßõ…‚
  539. 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Œ¶
  540. 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¡ç»
  541. < ¤ à
  542. 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
  543. - kZ 8stats/effects/fu_racialabilities/racefelins.statuseffect W’gj0ž@ W£{n¹Hp ¤ ¾2=§×•Y†Ùëò·ÂÜÞ%øÜ 0stats/effects/fu_racialabilities/racefenerox.lua W’gj0½V W£{Š'ôÎ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?^€^î ³¾ÏÍ
  544. ¼ñºâ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
  545.  
  546. 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–-
  547. ì°Šù¹ê+Ï*󸮛 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£:]
  548. ¤ ->
  549. (šãœ˜.b疁Uàôº 1stats/effects/fu_racialabilities/racekineptic.lua W’gk
  550. 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
  551. …rDW§üì  ¤ ƒŸ—QhšÏÛY‘šý¾6¹hRl 0stats/effects/fu_racialabilities/racenovakid.lua W’gk
  552. ³WàW£vÉ( @ ¤ ÃÕ™¢]9úÖÙOÍ×øæš 9stats/effects/fu_racialabilities/racenovakid.statuseffect W’gk
  553. á=W¤®s!²Õì ¤ +[¤ºèJåmÏ
  554. `OfÁ¦OH /stats/effects/fu_racialabilities/raceorcana.lua W’gkîÁÜW£;pÀkô ¤ xÑU[V‚ËE
  555. ŸÏ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ì
  556. 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 }1W¡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™
  557.  
  558. )oP¨WˆSÝ;PH ¤  âu_ åÛw[‰î‹v° üåÒ 'stats/effects/jumpboost/jumpboost35.lua W™
  559.  
  560. )~Š´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
  561. ù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
  562. 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
  563. 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â¼ ¤
  564. ðˆ¡ôqXé˜elÞÞõD/ÍꜴ (stats/effects/regeneration/foodregen.lua W£wâ³8W£x —Ÿ  ¤ Â4$< ÷j’©‚Ops:] 8stats/effects/regeneration/foodregennovakid.statuseffect W’gjâ WLçʔР¤ ™z
  565. ›\ÒÍ¿8Ù>yÖD--Aý /stats/effects/regeneration/lightregen.animation W’gjZ€W‰X‹ Ø ¤ Â" W åՍ#ý®üF ïc;| )stats/effects/regeneration/lightregen.lua W’gjFø`Wp2(‘ˆ ¤ ÄÑ _‡
  566. [·¥H0
  567. 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¸é
  568. Y¹yæ)pÂPò /stats/effects/swimboost/swimboost3.statuseffect Wškâx™”W¤”l+¼Q ¤ cöLÝq>Æä¦ü€Á°J
  569. " /stats/effects/swimboost/swimboost4.statuseffect W“SÙ26LÈWšt¤5buH ¤ €+Ó%Ù …ñk{1;’npR»9ƹ 5stats/effects/swimboost/swimboosthylotl1.statuseffect W“W OðWšt©
  570. êU8 ¤ €3d0M±õ"8FŸk(‰ó?9 _ 5stats/effects/swimboost/swimboostorcana1.statuseffect TREE › 194 5
  571. ×âNËk.” €ùk´-È®¶Á­µitems 2 1
  572. R#¹ kmu2¦³Y9mÛéîPactive 2 1
  573. ˜Ýòp7äÒ)´ÌDE>!shields 2 0
  574. R£Ûô1þAèŒ$£oxfstats 171 1
  575. ͘ ey„Xù_"åzIz7effects 171 15
  576. N{^Úƒô˜Õš–‚ж«ÍÅ«Æ°Xcrit 4 0
  577. €¯óT<’yÆ>îCŠ—Häfood 11 0
  578. ›æ]M&y>±²ó ‘yëºJÀlowgrav 3 0
  579. …#ÏM¼ØO.§ m]†dëÿuhpassive 8 0
  580.  
  581. K{Ô“× _€. úÅÜ*r88movement 3 0
  582. ŸLMœµ¬ñïùNø\oæàðjumpboost 2 0
  583. ÎÔ<sË„»ø`R̯Èx!¢_.„Bswimboost 8 0
  584. Ü¡˜ÝÜÁô¶ .Gb§Mô'yè¢camouflage 3 0
  585. ¹ó/yuñŽXèÃG,bV¬R¯[damageboost 4 0
  586. VUóÁOØòó¸bρj<idefenseboost 2 0
  587. x³‘P`ý\ýùÅW­@(£familiarglow 2 0
  588. D‰„ØBÓž[,é {²¾A²€regeneration 11 0
  589. ô÷áÊ XKã¾âÕý¨•maxenergyboost 1 0
  590. píïMïVX4¶w¨G‹°šaT fu_immunityeffects 61 1
  591. ³fG¸‡?»¿¯“ß,õ°Ø†Ùimmunesting 2 0
  592. Qÿ¾&ySÁ†« ɳ™ÔK™oÕAfu_racialabilities 48 0
  593. 5Ç´ŸìgauõDÇãTv}j¢scripts 1 0
  594. ƒÜ#¹Œ ³¢NÅ4Ö¦™Tãspecies 8 0
  595.  
  596. €` ÛÉœ‡(ÉN‹™{ã8¸ùanimations 9 1
  597. þâä&E¤ˆtx y=´à4dÔ±¡statuseffects 9 1
  598. »5ß ZvCÓXa÷‘j5#‰qï Cheal 9 0
  599. RU”Y0_ÙÇÍ`P1Q ™ú•j€Ú‰›Ê-ëš;),¶Òecs—[8# git ls-files --others --exclude-from=.git/info/exclude
  600. # Lines that start with '#' are comments.
  601. # For a project mostly in C, the following would be a good set of
  602. # exclude patterns (uncomment them if you want to use them):
  603. # *.[oa]
  604. # *~
  605. 0000000000000000000000000000000000000000 75226b51fa2d3fd6269a572cf8c7aa26c01b0894 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470413425 -0400 commit (initial): first push
  606. 75226b51fa2d3fd6269a572cf8c7aa26c01b0894 bc5f7ffc04fa8862feddf1de28cdf333a393b98c sayterdarkwynd <sayterdarkwynd@gmail.com> 1470413633 -0400 commit: fhylotl test
  607. bc5f7ffc04fa8862feddf1de28cdf333a393b98c 7b7d511a0cd1b6a80b5260a8b28e9bb8fe01723a sayterdarkwynd <sayterdarkwynd@gmail.com> 1470416100 -0400 commit: glitch are weaker in water
  608. 7b7d511a0cd1b6a80b5260a8b28e9bb8fe01723a 2e0bd2a60a8fb959f7a2f5e74c36df319d592a84 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470416181 -0400 commit: reduced penalties
  609. 2e0bd2a60a8fb959f7a2f5e74c36df319d592a84 10852bbefebba04160e10c5f2632598806431495 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470426018 -0400 commit: metadata update
  610. 10852bbefebba04160e10c5f2632598806431495 07e606cb05a73e060f42191ed968c4ba6d99920b sayterdarkwynd <sayterdarkwynd@gmail.com> 1470433694 -0400 commit: carnivore food regen fix
  611. 07e606cb05a73e060f42191ed968c4ba6d99920b df8a2fb17c84512b2a6d2438ec5650c7f06da9df sayterdarkwynd <sayterdarkwynd@gmail.com> 1470435111 -0400 commit: fuck it. removed the foods. not worth the headache.
  612. df8a2fb17c84512b2a6d2438ec5650c7f06da9df b8d0166e458d3a896637dc30b5d24cfbbd184be7 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470446966 -0400 commit: stuff
  613. b8d0166e458d3a896637dc30b5d24cfbbd184be7 7fa6ecf4630e1b9ceb7ab3057d9a90ab5f399dcd sayterdarkwynd <sayterdarkwynd@gmail.com> 1470540847 -0400 commit: stuffs
  614. 7fa6ecf4630e1b9ceb7ab3057d9a90ab5f399dcd 91920e63508a5ddbbea7c455017414ac36e1bae4 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470597879 -0400 commit: new effects
  615. 91920e63508a5ddbbea7c455017414ac36e1bae4 e60e6957c663c9e69e8603576148aa28eb54b3f7 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470599326 -0400 commit: food tests
  616. e60e6957c663c9e69e8603576148aa28eb54b3f7 bcd8ce7595176f2de4e3da4bf1fc8963036c853b sayterdarkwynd <sayterdarkwynd@gmail.com> 1470628659 -0400 commit: various changes
  617. bcd8ce7595176f2de4e3da4bf1fc8963036c853b 0c8d2bfaa6d5305bd10d75ef8c5259a7fd3abfaa sayterdarkwynd <sayterdarkwynd@gmail.com> 1470658567 -0400 commit: slowfall balance
  618. 0c8d2bfaa6d5305bd10d75ef8c5259a7fd3abfaa 954e56df253ddce5969dea4364643b599044da6f sayterdarkwynd <sayterdarkwynd@gmail.com> 1470707577 -0400 commit: various adjustments
  619. 954e56df253ddce5969dea4364643b599044da6f 3ff24f9fbc37ee4b88adfe6639adba393fb3a057 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470707919 -0400 commit: adjustments to descriptions
  620. 3ff24f9fbc37ee4b88adfe6639adba393fb3a057 615a0a8b71f9a591f0c9635e664b6094d75cb877 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470708300 -0400 commit: metadata
  621. 615a0a8b71f9a591f0c9635e664b6094d75cb877 6c088efc2da41981f8203e88e10b21a5057eaad3 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470843443 -0400 commit: slight edits
  622. 6c088efc2da41981f8203e88e10b21a5057eaad3 82a2d75d93694f3ed297e42719f6080b501b4b86 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470843927 -0400 commit: added
  623. 82a2d75d93694f3ed297e42719f6080b501b4b86 1f70ae36b156d447137d5fcb8aabd33d1b80ba6c sayterdarkwynd <sayterdarkwynd@gmail.com> 1470946942 -0400 commit: familiars now glow
  624. 0000000000000000000000000000000000000000 75226b51fa2d3fd6269a572cf8c7aa26c01b0894 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470413425 -0400 commit (initial): first push
  625. 75226b51fa2d3fd6269a572cf8c7aa26c01b0894 bc5f7ffc04fa8862feddf1de28cdf333a393b98c sayterdarkwynd <sayterdarkwynd@gmail.com> 1470413633 -0400 commit: fhylotl test
  626. bc5f7ffc04fa8862feddf1de28cdf333a393b98c 7b7d511a0cd1b6a80b5260a8b28e9bb8fe01723a sayterdarkwynd <sayterdarkwynd@gmail.com> 1470416100 -0400 commit: glitch are weaker in water
  627. 7b7d511a0cd1b6a80b5260a8b28e9bb8fe01723a 2e0bd2a60a8fb959f7a2f5e74c36df319d592a84 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470416181 -0400 commit: reduced penalties
  628. 2e0bd2a60a8fb959f7a2f5e74c36df319d592a84 10852bbefebba04160e10c5f2632598806431495 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470426018 -0400 commit: metadata update
  629. 10852bbefebba04160e10c5f2632598806431495 07e606cb05a73e060f42191ed968c4ba6d99920b sayterdarkwynd <sayterdarkwynd@gmail.com> 1470433694 -0400 commit: carnivore food regen fix
  630. 07e606cb05a73e060f42191ed968c4ba6d99920b df8a2fb17c84512b2a6d2438ec5650c7f06da9df sayterdarkwynd <sayterdarkwynd@gmail.com> 1470435111 -0400 commit: fuck it. removed the foods. not worth the headache.
  631. df8a2fb17c84512b2a6d2438ec5650c7f06da9df b8d0166e458d3a896637dc30b5d24cfbbd184be7 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470446966 -0400 commit: stuff
  632. b8d0166e458d3a896637dc30b5d24cfbbd184be7 7fa6ecf4630e1b9ceb7ab3057d9a90ab5f399dcd sayterdarkwynd <sayterdarkwynd@gmail.com> 1470540847 -0400 commit: stuffs
  633. 7fa6ecf4630e1b9ceb7ab3057d9a90ab5f399dcd 91920e63508a5ddbbea7c455017414ac36e1bae4 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470597879 -0400 commit: new effects
  634. 91920e63508a5ddbbea7c455017414ac36e1bae4 e60e6957c663c9e69e8603576148aa28eb54b3f7 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470599326 -0400 commit: food tests
  635. e60e6957c663c9e69e8603576148aa28eb54b3f7 bcd8ce7595176f2de4e3da4bf1fc8963036c853b sayterdarkwynd <sayterdarkwynd@gmail.com> 1470628659 -0400 commit: various changes
  636. bcd8ce7595176f2de4e3da4bf1fc8963036c853b 0c8d2bfaa6d5305bd10d75ef8c5259a7fd3abfaa sayterdarkwynd <sayterdarkwynd@gmail.com> 1470658567 -0400 commit: slowfall balance
  637. 0c8d2bfaa6d5305bd10d75ef8c5259a7fd3abfaa 954e56df253ddce5969dea4364643b599044da6f sayterdarkwynd <sayterdarkwynd@gmail.com> 1470707577 -0400 commit: various adjustments
  638. 954e56df253ddce5969dea4364643b599044da6f 3ff24f9fbc37ee4b88adfe6639adba393fb3a057 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470707919 -0400 commit: adjustments to descriptions
  639. 3ff24f9fbc37ee4b88adfe6639adba393fb3a057 615a0a8b71f9a591f0c9635e664b6094d75cb877 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470708300 -0400 commit: metadata
  640. 615a0a8b71f9a591f0c9635e664b6094d75cb877 6c088efc2da41981f8203e88e10b21a5057eaad3 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470843443 -0400 commit: slight edits
  641. 6c088efc2da41981f8203e88e10b21a5057eaad3 82a2d75d93694f3ed297e42719f6080b501b4b86 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470843927 -0400 commit: added
  642. 82a2d75d93694f3ed297e42719f6080b501b4b86 1f70ae36b156d447137d5fcb8aabd33d1b80ba6c sayterdarkwynd <sayterdarkwynd@gmail.com> 1470946942 -0400 commit: familiars now glow
  643. 0000000000000000000000000000000000000000 75226b51fa2d3fd6269a572cf8c7aa26c01b0894 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470413438 -0400 update by push
  644. 75226b51fa2d3fd6269a572cf8c7aa26c01b0894 bc5f7ffc04fa8862feddf1de28cdf333a393b98c sayterdarkwynd <sayterdarkwynd@gmail.com> 1470413646 -0400 update by push
  645. bc5f7ffc04fa8862feddf1de28cdf333a393b98c 7b7d511a0cd1b6a80b5260a8b28e9bb8fe01723a sayterdarkwynd <sayterdarkwynd@gmail.com> 1470416113 -0400 update by push
  646. 7b7d511a0cd1b6a80b5260a8b28e9bb8fe01723a 2e0bd2a60a8fb959f7a2f5e74c36df319d592a84 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470416195 -0400 update by push
  647. 2e0bd2a60a8fb959f7a2f5e74c36df319d592a84 10852bbefebba04160e10c5f2632598806431495 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470426035 -0400 update by push
  648. 10852bbefebba04160e10c5f2632598806431495 07e606cb05a73e060f42191ed968c4ba6d99920b sayterdarkwynd <sayterdarkwynd@gmail.com> 1470433708 -0400 update by push
  649. 07e606cb05a73e060f42191ed968c4ba6d99920b df8a2fb17c84512b2a6d2438ec5650c7f06da9df sayterdarkwynd <sayterdarkwynd@gmail.com> 1470435122 -0400 update by push
  650. df8a2fb17c84512b2a6d2438ec5650c7f06da9df b8d0166e458d3a896637dc30b5d24cfbbd184be7 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470446981 -0400 update by push
  651. b8d0166e458d3a896637dc30b5d24cfbbd184be7 7fa6ecf4630e1b9ceb7ab3057d9a90ab5f399dcd sayterdarkwynd <sayterdarkwynd@gmail.com> 1470540862 -0400 update by push
  652. 7fa6ecf4630e1b9ceb7ab3057d9a90ab5f399dcd 91920e63508a5ddbbea7c455017414ac36e1bae4 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470597892 -0400 update by push
  653. 91920e63508a5ddbbea7c455017414ac36e1bae4 e60e6957c663c9e69e8603576148aa28eb54b3f7 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470599342 -0400 update by push
  654. e60e6957c663c9e69e8603576148aa28eb54b3f7 bcd8ce7595176f2de4e3da4bf1fc8963036c853b sayterdarkwynd <sayterdarkwynd@gmail.com> 1470628673 -0400 update by push
  655. bcd8ce7595176f2de4e3da4bf1fc8963036c853b 0c8d2bfaa6d5305bd10d75ef8c5259a7fd3abfaa sayterdarkwynd <sayterdarkwynd@gmail.com> 1470658581 -0400 update by push
  656. 0c8d2bfaa6d5305bd10d75ef8c5259a7fd3abfaa 3ff24f9fbc37ee4b88adfe6639adba393fb3a057 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470707931 -0400 update by push
  657. 3ff24f9fbc37ee4b88adfe6639adba393fb3a057 615a0a8b71f9a591f0c9635e664b6094d75cb877 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470708314 -0400 update by push
  658. 615a0a8b71f9a591f0c9635e664b6094d75cb877 6c088efc2da41981f8203e88e10b21a5057eaad3 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470843462 -0400 update by push
  659. 6c088efc2da41981f8203e88e10b21a5057eaad3 82a2d75d93694f3ed297e42719f6080b501b4b86 sayterdarkwynd <sayterdarkwynd@gmail.com> 1470843939 -0400 update by push
  660. 82a2d75d93694f3ed297e42719f6080b501b4b86 1f70ae36b156d447137d5fcb8aabd33d1b80ba6c sayterdarkwynd <sayterdarkwynd@gmail.com> 1470946961 -0400 update by push
  661.  
  662.  
  663. "frames" : "darkheal2.png",
  664. "variants" : 1,
  665. "frameNumber" : 8,
  666. "animationCycle" : 0.85,
  667. "offset" : [0, 0]
  668. }
  669. {
  670. "frameGrid" : {
  671. "size" : [6, 6],
  672. "dimensions" : [8, 1]
  673. }
  674. }
  675.  
  676.  
  677. "frames" : "lightheal.png",
  678. "variants" : 1,
  679. "frameNumber" : 8,
  680. "animationCycle" : 0.85,
  681. "offset" : [0, 0]
  682. }
  683. {
  684. "frameGrid" : {
  685. "size" : [6, 6],
  686. "dimensions" : [8, 1]
  687. }
  688. }
  689. ‰PNG
  690. 
  691.  
  692. IHDR 0  …!7 pHYs   šœ 9ÝiTXtXML:com.adobe.xmp <?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
  693. <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c111 79.158325, 2015/09/10-01:10:20 ">
  694. <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  695. <rdf:Description rdf:about=""
  696. xmlns:xmp="http://ns.adobe.com/xap/1.0/"
  697. xmlns:dc="http://purl.org/dc/elements/1.1/"
  698. xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
  699. xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
  700. xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
  701. xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
  702. xmlns:exif="http://ns.adobe.com/exif/1.0/">
  703. <xmp:CreatorTool>Adobe Photoshop CC 2015 (Windows)</xmp:CreatorTool>
  704. <xmp:CreateDate>2016-05-30T20:28:23-04:00</xmp:CreateDate>
  705. <xmp:ModifyDate>2016-05-30T21:02:27-04:00</xmp:ModifyDate>
  706. <xmp:MetadataDate>2016-05-30T21:02:27-04:00</xmp:MetadataDate>
  707. <dc:format>image/png</dc:format>
  708. <photoshop:ColorMode>3</photoshop:ColorMode>
  709. <xmpMM:InstanceID>xmp.iid:1d6e5060-4a66-3045-bf02-ccddfb410986</xmpMM:InstanceID>
  710. <xmpMM:DocumentID>xmp.did:57a048a0-ed14-4b4b-83ff-280b9b3e1601</xmpMM:DocumentID>
  711. <xmpMM:OriginalDocumentID>xmp.did:57a048a0-ed14-4b4b-83ff-280b9b3e1601</xmpMM:OriginalDocumentID>
  712. <xmpMM:History>
  713. <rdf:Seq>
  714. <rdf:li rdf:parseType="Resource">
  715. <stEvt:action>created</stEvt:action>
  716. <stEvt:instanceID>xmp.iid:57a048a0-ed14-4b4b-83ff-280b9b3e1601</stEvt:instanceID>
  717. <stEvt:when>2016-05-30T20:28:23-04:00</stEvt:when>
  718. <stEvt:softwareAgent>Adobe Photoshop CC 2015 (Windows)</stEvt:softwareAgent>
  719. </rdf:li>
  720. <rdf:li rdf:parseType="Resource">
  721. <stEvt:action>saved</stEvt:action>
  722. <stEvt:instanceID>xmp.iid:1d6e5060-4a66-3045-bf02-ccddfb410986</stEvt:instanceID>
  723. <stEvt:when>2016-05-30T21:02:27-04:00</stEvt:when>
  724. <stEvt:softwareAgent>Adobe Photoshop CC 2015 (Windows)</stEvt:softwareAgent>
  725. <stEvt:changed>/</stEvt:changed>
  726. </rdf:li>
  727. </rdf:Seq>
  728. </xmpMM:History>
  729. <tiff:Orientation>1</tiff:Orientation>
  730. <tiff:XResolution>720000/10000</tiff:XResolution>
  731. <tiff:YResolution>720000/10000</tiff:YResolution>
  732. <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
  733. <exif:ColorSpace>65535</exif:ColorSpace>
  734. <exif:PixelXDimension>48</exif:PixelXDimension>
  735. <exif:PixelYDimension>6</exif:PixelYDimension>
  736. </rdf:Description>
  737. </rdf:RDF>
  738. </x:xmpmeta>
  739.  
  740.  
  741. "globalTagDefaults" : {
  742. "hand" : "near",
  743. "directives" : ""
  744. },
  745.  
  746. "animatedParts" : {
  747. "stateTypes" : {
  748. "shield" : {
  749. "default" : "idle",
  750. "states" : {
  751. "idle" : {},
  752. "raised" : {},
  753. "block" : {
  754. "frames" : 1,
  755. "cycle" : 0.12,
  756. "mode" : "transition",
  757. "transition" : "raised"
  758. }
  759. }
  760. }
  761. },
  762. "parts" : {
  763. "shield" : {
  764. "properties" : {
  765. "zLevel" : 1,
  766. "centered" : true,
  767. "transformationGroups" : ["shield"],
  768. "rotationCenter" : [0, 0],
  769. "shieldPoly" : [ [-0.5, -1.75], [-0.5, 1.75], [0.75, 1.0], [0.75, -1.0] ]
  770. },
  771. "partStates" : {
  772. "shield" : {
  773. "idle" : {
  774. "properties" : {
  775. "image" : "<partImage>:<hand>idle<directives>"
  776. }
  777. },
  778. "raised" : {
  779. "properties" : {
  780. "image" : "<partImage>:<hand>raised<directives>"
  781. }
  782. },
  783. "block" : {
  784. "properties" : {
  785. "image" : "<partImage>:<hand>raised<directives>",
  786. "offset" : [-0.25, 0]
  787. }
  788. }
  789. }
  790. }
  791. }
  792. }
  793. },
  794.  
  795. "transformationGroups" : {
  796. "shield" : {}
  797. },
  798.  
  799. "sounds" : {
  800. "raiseShield" : [ ],
  801. "lowerShield" : [ ],
  802. "perfectBlock" : [ ],
  803. "block" : [ ],
  804. "break" : [ ]
  805. },
  806.  
  807. "particleEmitters" : {
  808. "perfectBlock" : {
  809. "active" : false,
  810. "transformationGroups" : ["shield"],
  811. "emissionRate" : 30,
  812. "offsetRegion" : [-0.5, -1.0, 0.5, 1.0],
  813. "particles" : [
  814. { "particle" : "sparkle5"},
  815. { "particle" : "sparkle5"}
  816. ]
  817. },
  818.  
  819. "bonusBlock" : {
  820. "active" : false,
  821. "transformationGroups" : ["shield"],
  822. "emissionRate" : 30,
  823. "offsetRegion" : [-0.5, -1.0, 0.5, 1.0],
  824. "particles" : [
  825. { "particle" : "healthcross"},
  826. { "particle" : "healthcross"}
  827. ]
  828. },
  829. "bonusBlock2" : {
  830. "active" : false,
  831. "transformationGroups" : ["shield"],
  832. "emissionRate" : 30,
  833. "offsetRegion" : [-0.5, -1.0, 0.5, 1.0],
  834. "particles" : [
  835. { "particle" : "greencartoonstar"},
  836. { "particle" : "greencartoonstar"}
  837. ]
  838. },
  839. "bonusBlock3" : {
  840. "active" : false,
  841. "transformationGroups" : ["shield"],
  842. "emissionRate" : 30,
  843. "offsetRegion" : [-0.5, -1.0, 0.5, 1.0],
  844. "particles" : [
  845. { "particle" : "redcartoonstar"},
  846. { "particle" : "redcartoonstar"}
  847. ]
  848. },
  849. "bonusBlock4" : {
  850. "active" : false,
  851. "transformationGroups" : ["shield"],
  852. "emissionRate" : 90,
  853. "offsetRegion" : [-0.5, -1.0, 0.5, 1.0],
  854. "particles" : [
  855. { "particle" : "greencartoonstar"},
  856. { "particle" : "greencartoonstar"}
  857. ]
  858. }
  859.  
  860. }
  861. }
  862. require "/scripts/util.lua"
  863. require "/scripts/status.lua"
  864.  
  865. function init()
  866. self.debug = true
  867.  
  868. self.aimAngle = 0
  869. self.aimDirection = 1
  870.  
  871. self.active = false
  872. self.cooldownTimer = config.getParameter("cooldownTime")
  873. self.activeTimer = 0
  874.  
  875. self.level = config.getParameter("level", 1)
  876. self.baseShieldHealth = config.getParameter("baseShieldHealth", 1)
  877. self.knockback = config.getParameter("knockback", 0)
  878. self.perfectBlockDirectives = config.getParameter("perfectBlockDirectives", "")
  879. self.perfectBlockTime = config.getParameter("perfectBlockTime", 0.2)
  880. self.minActiveTime = config.getParameter("minActiveTime", 0)
  881. self.cooldownTime = config.getParameter("cooldownTime")
  882. self.forceWalk = config.getParameter("forceWalk", false)
  883.  
  884. animator.setGlobalTag("directives", "")
  885. animator.setAnimationState("shield", "idle")
  886. activeItem.setOutsideOfHand(true)
  887.  
  888. self.stances = config.getParameter("stances")
  889. setStance(self.stances.idle)
  890.  
  891. self.blockCount = 0.01
  892.  
  893.  
  894. self.startHealth = status.resource("health")
  895.  
  896. updateAim()
  897. end
  898.  
  899. function update(dt, fireMode, shiftHeld)
  900. self.cooldownTimer = math.max(0, self.cooldownTimer - dt)
  901.  
  902. --**************************************
  903. if self.blockCount == nil then
  904. self.blockCount = 0.01
  905. end
  906. --**************************************
  907.  
  908. if not self.active
  909. and fireMode == "primary"
  910. and self.cooldownTimer == 0
  911. and status.resourcePositive("shieldStamina") then
  912. raiseShield()
  913. end
  914.  
  915. if self.active then
  916. self.activeTimer = self.activeTimer + dt
  917.  
  918. self.damageListener:update()
  919.  
  920. if status.resourcePositive("perfectBlock") then
  921. animator.setGlobalTag("directives", self.perfectBlockDirectives)
  922. else
  923. animator.setGlobalTag("directives", "")
  924. end
  925.  
  926. if self.forceWalk then
  927. mcontroller.controlModifiers({runningSuppressed = true})
  928. end
  929.  
  930. if (fireMode ~= "primary" and self.activeTimer >= self.minActiveTime) or not status.resourcePositive("shieldStamina") then
  931. lowerShield()
  932. end
  933. end
  934.  
  935. updateAim()
  936. end
  937.  
  938. function uninit()
  939. status.clearPersistentEffects(activeItem.hand().."Shield")
  940. activeItem.setItemShieldPolys({})
  941. activeItem.setItemDamageSources({})
  942. status.clearPersistentEffects("humanprotection")
  943. status.clearPersistentEffects("vieraprotection")
  944. status.clearPersistentEffects("hylotlprotection")
  945. status.clearPersistentEffects("glitchprotection")
  946. end
  947.  
  948. function updateAim()
  949. local aimAngle, aimDirection = activeItem.aimAngleAndDirection(0, activeItem.ownerAimPosition())
  950.  
  951. if self.stance.allowRotate then
  952. self.aimAngle = aimAngle
  953. end
  954. activeItem.setArmAngle(self.aimAngle + self.relativeArmRotation)
  955.  
  956. if self.stance.allowFlip then
  957. self.aimDirection = aimDirection
  958. end
  959. activeItem.setFacingDirection(self.aimDirection)
  960.  
  961. animator.setGlobalTag("hand", isNearHand() and "near" or "far")
  962. activeItem.setOutsideOfHand(not self.active or isNearHand())
  963. end
  964.  
  965. function isNearHand()
  966. return (activeItem.hand() == "primary") == (self.aimDirection < 0)
  967. end
  968.  
  969. function setStance(stance)
  970. self.stance = stance
  971. self.relativeShieldRotation = util.toRadians(stance.shieldRotation) or 0
  972. self.relativeArmRotation = util.toRadians(stance.armRotation) or 0
  973. end
  974.  
  975. function raiseShield()
  976. setStance(self.stances.raised)
  977. animator.setAnimationState("shield", "raised")
  978. animator.playSound("raiseShield")
  979. self.active = true
  980. self.activeTimer = 0
  981. status.setPersistentEffects(activeItem.hand().."Shield", {{stat = "shieldHealth", amount = shieldHealth()}})
  982. local shieldPoly = animator.partPoly("shield", "shieldPoly")
  983. activeItem.setItemShieldPolys({shieldPoly})
  984.  
  985. if self.knockback > 0 then
  986. local knockbackDamageSource = {
  987. poly = shieldPoly,
  988. damage = 0,
  989. damageType = "Knockback",
  990. sourceEntity = activeItem.ownerEntityId(),
  991. team = activeItem.ownerTeam(),
  992. knockback = self.knockback,
  993. rayCheck = true,
  994. damageRepeatTimeout = 0.25
  995. }
  996. activeItem.setItemDamageSources({ knockbackDamageSource })
  997. end
  998.  
  999. self.damageListener = damageListener("damageTaken", function(notifications)
  1000. for _,notification in pairs(notifications) do
  1001. if notification.hitType == "ShieldHit" then
  1002. if status.resourcePositive("perfectBlock") then
  1003. animator.playSound("perfectBlock")
  1004. animator.burstParticleEmitter("perfectBlock")
  1005.  
  1006. -- *******************************************************
  1007. self.blockCount = self.blockCount + 0.01
  1008. -- *******************************************************
  1009. -- FRACKIN UNIVERSE and FRACKIN RACES abilities start here
  1010. -- *******************************************************
  1011. -- *******************************************************
  1012. -- *******************************************************
  1013.  
  1014. if world.entitySpecies(activeItem.ownerEntityId()) == "glitch" then
  1015. self.blockCount = self.blockCount + 0.03
  1016. status.setPersistentEffects("glitchprotection", {{stat = "powerMultiplier", amount = self.blockCount}}) --glitch get a power bonus when perfectly blocking
  1017. animator.burstParticleEmitter("bonusBlock3")
  1018. end
  1019. if world.entitySpecies(activeItem.ownerEntityId()) == "hylotl" then
  1020. status.modifyResourcePercentage("health", 0.05 + self.blockCount ) --hylotl get a heal when they perfectly block
  1021. animator.burstParticleEmitter("bonusBlock")
  1022. end
  1023. if world.entitySpecies(activeItem.ownerEntityId()) == "viera" then
  1024. status.modifyResourcePercentage("energy", 0.07 + self.blockCount ) --viera get energy when they perfectly block
  1025. animator.burstParticleEmitter("bonusBlock2")
  1026. end
  1027. if world.entitySpecies(activeItem.ownerEntityId()) == "human" then
  1028. self.blockCount = self.blockCount + 2
  1029. status.setPersistentEffects("humanprotection", {{stat = "protection", amount = self.blockCount}}) --human get a defense bonus when perfectly blocking
  1030. animator.burstParticleEmitter("bonusBlock4")
  1031. end
  1032. -- *******************************************************
  1033. -- *******************************************************
  1034. -- *******************************************************
  1035. -- *******************************************************
  1036.  
  1037. refreshPerfectBlock()
  1038. elseif status.resourcePositive("shieldStamina") then
  1039. animator.playSound("block")
  1040.  
  1041. -- *******************************************************
  1042. self.blockCount = 0 --reset the blockCount here
  1043. if world.entitySpecies(activeItem.ownerEntityId()) == "glitch" then --glitch dont stack more bonus if they miss blocking
  1044. self.blockCount = 0 --reset bonus here
  1045. status.clearPersistentEffects("glitchprotection")
  1046. end
  1047. if world.entitySpecies(activeItem.ownerEntityId()) == "human" then --human dont stack more bonus if they miss blocking
  1048. self.blockCount = 0 --reset bonus here
  1049. status.clearPersistentEffects("humanprotection")
  1050. end
  1051. -- *******************************************************
  1052.  
  1053. else
  1054. animator.playSound("break")
  1055.  
  1056. -- *******************************************************
  1057. self.blockCount = 0 --reset the blockCount here
  1058. if world.entitySpecies(activeItem.ownerEntityId()) == "glitch" then --glitch dont stack more bonus if they miss blocking
  1059. self.blockCount = 0 --reset bonus here
  1060. status.clearPersistentEffects("glitchprotection")
  1061. end
  1062. if world.entitySpecies(activeItem.ownerEntityId()) == "human" then --human dont stack more bonus if they miss blocking
  1063. self.blockCount = 0 --reset bonus here
  1064. status.clearPersistentEffects("humanprotection")
  1065. end
  1066. -- *******************************************************
  1067.  
  1068. end
  1069. animator.setAnimationState("shield", "block")
  1070. return
  1071. end
  1072. end
  1073. end)
  1074.  
  1075. refreshPerfectBlock()
  1076. end
  1077.  
  1078.  
  1079.  
  1080. function refreshPerfectBlock()
  1081. local perfectBlockTimeAdded = math.max(0, math.min(status.resource("perfectBlockLimit"), self.perfectBlockTime - status.resource("perfectBlock")))
  1082. status.overConsumeResource("perfectBlockLimit", perfectBlockTimeAdded)
  1083. status.modifyResource("perfectBlock", perfectBlockTimeAdded)
  1084. end
  1085.  
  1086. function lowerShield()
  1087. setStance(self.stances.idle)
  1088. animator.setGlobalTag("directives", "")
  1089. animator.setAnimationState("shield", "idle")
  1090. animator.playSound("lowerShield")
  1091. self.active = false
  1092. self.activeTimer = 0
  1093. status.clearPersistentEffects(activeItem.hand().."Shield")
  1094. activeItem.setItemShieldPolys({})
  1095. activeItem.setItemDamageSources({})
  1096. self.cooldownTimer = self.cooldownTime
  1097. end
  1098.  
  1099. function shieldHealth()
  1100. return self.baseShieldHealth * root.evalFunction("shieldLevelMultiplier", self.level)
  1101. end
  1102. [
  1103.  
  1104. { "op": "add", "path" : "/statusControllerSettings/primaryScriptSources/-" , "value" : "/scripts/raceEffects.lua" }
  1105.  
  1106. ]require("/scripts/vec2.lua")
  1107. local fuoldInit = init
  1108. local fuoldUpdate = update
  1109. local fuoldUninit = uninit
  1110.  
  1111. function init()
  1112. fuoldInit()
  1113. self.lastYPosition = 0
  1114. self.lastYVelocity = 0
  1115. self.fallDistance = 0
  1116. local bounds = mcontroller.boundBox() --Mcontroller for movement
  1117. end
  1118.  
  1119. function update(dt)
  1120. fuoldUpdate(dt)
  1121.  
  1122. --Human
  1123. if world.entitySpecies(entity.id()) == "human" then
  1124. status.addEphemeralEffect("racehuman",math.huge)
  1125. end
  1126.  
  1127. --Avian
  1128. if world.entitySpecies(entity.id()) == "avian" then
  1129. status.addEphemeralEffect("raceavian",math.huge)
  1130. status.addEphemeralEffect("hpedge",math.huge)
  1131. end
  1132.  
  1133. --Apex
  1134. if world.entitySpecies(entity.id()) == "apex" then
  1135. status.addEphemeralEffect("raceapex",math.huge)
  1136. status.addEphemeralEffect("metabolism",math.huge)
  1137. end
  1138.  
  1139. --Floran
  1140. if world.entitySpecies(entity.id()) == "floran" then
  1141. status.addEphemeralEffect("racefloran",math.huge)
  1142. status.addEphemeralEffect("starvingedge",math.huge)
  1143. status.addEphemeralEffect("lightregenfloran",math.huge)
  1144.  
  1145. end
  1146.  
  1147. --Hylotl
  1148. if world.entitySpecies(entity.id()) == "hylotl" then
  1149. status.addEphemeralEffect("racehylotl",math.huge)
  1150. status.addEphemeralEffect("swimboost2",math.huge)
  1151. end
  1152.  
  1153. --Glitch
  1154. if world.entitySpecies(entity.id()) == "glitch" then
  1155. status.addEphemeralEffect("raceglitch",math.huge)
  1156. status.addEphemeralEffect("attrition",math.huge)
  1157. end
  1158.  
  1159. --Novakid
  1160. if world.entitySpecies(entity.id()) == "novakid" then
  1161. status.addEphemeralEffect("racenovakid",math.huge)
  1162. status.addEphemeralEffect("foodregennovakid",math.huge)
  1163. end
  1164.  
  1165.  
  1166. --avali
  1167. if world.entitySpecies(entity.id()) == "avali" then
  1168. status.addEphemeralEffect("raceavali",math.huge)
  1169. end
  1170.  
  1171. --avikan
  1172. if world.entitySpecies(entity.id()) == "avikan" then
  1173. status.addEphemeralEffect("raceavikan",math.huge)
  1174. end
  1175.  
  1176. --peglaci
  1177. if world.entitySpecies(entity.id()) == "peglaci" then
  1178. status.addEphemeralEffect("racepeglaci",math.huge)
  1179. end
  1180.  
  1181. --felins
  1182. if world.entitySpecies(entity.id()) == "felin" then
  1183. status.addEphemeralEffect("racefelins",math.huge)
  1184. end
  1185.  
  1186. --Orcana
  1187. if world.entitySpecies(entity.id()) == "orcana" then
  1188. status.addEphemeralEffect("raceorcana",math.huge)
  1189. status.addEphemeralEffect("swimboost2",math.huge)
  1190. end
  1191.  
  1192. --Munari
  1193. if world.entitySpecies(entity.id()) == "munari" then
  1194. status.addEphemeralEffect("raceorcana",math.huge)
  1195. status.addEphemeralEffect("swimboost2",math.huge)
  1196. end
  1197.  
  1198. --ponex
  1199. if world.entitySpecies(entity.id()) == "ponex" then
  1200. status.addEphemeralEffect("raceponex",math.huge)
  1201. end
  1202.  
  1203. --viera (bunny people)
  1204. if world.entitySpecies(entity.id()) == "viera" then
  1205. status.addEphemeralEffect("raceviera",math.huge)
  1206. end
  1207.  
  1208. --fenerox (fox people)
  1209. if world.entitySpecies(entity.id()) == "fenerox" then
  1210. status.addEphemeralEffect("racefenerox",math.huge)
  1211. status.addEphemeralEffect("darkregenfenerox",math.huge)
  1212. status.addEphemeralEffect("metabolism",math.huge)
  1213. end
  1214.  
  1215. --kineptic (mage cats)
  1216. if world.entitySpecies(entity.id()) == "kineptic" then
  1217. status.addEphemeralEffect("racekineptic",math.huge)
  1218. status.addEphemeralEffect("darkregenfenerox",math.huge)
  1219. end
  1220.  
  1221. --vespoid (bug people)
  1222. if world.entitySpecies(entity.id()) == "vespoid" then
  1223. status.addEphemeralEffect("racevespoid",math.huge)
  1224. end
  1225.  
  1226. --familiar (stuffed animal type things)
  1227. if world.entitySpecies(entity.id()) == "familiar" then
  1228. status.addEphemeralEffect("racefamiliar",math.huge)
  1229. status.addEphemeralEffect("familiarglow",math.huge)
  1230. end
  1231.  
  1232. --neko (cat girls)
  1233. if world.entitySpecies(entity.id()) == "neko" then
  1234. status.addEphemeralEffect("raceneko",math.huge)
  1235. status.addEphemeralEffect("novakidglow",math.huge)
  1236. end
  1237.  
  1238. --sergal (cat/fox/hybrid ...thing)
  1239. if world.entitySpecies(entity.id()) == "sergal" then
  1240. status.addEphemeralEffect("racesergal",math.huge)
  1241. end
  1242.  
  1243. --inkling already has racial abilities in its own native mod. no need for this.
  1244. --if world.entitySpecies(entity.id()) == "inkling" then
  1245. -- status.addEphemeralEffect("raceinkling",math.huge)
  1246. -- status.addEphemeralEffect("swimboost1",math.huge)
  1247. --end
  1248.  
  1249. --vulpes (fox people)
  1250. if world.entitySpecies(entity.id()) == "vulpes" then
  1251. status.addEphemeralEffect("racevulpes",math.huge)
  1252. end
  1253.  
  1254. --kemono (fox people)
  1255. if world.entitySpecies(entity.id()) == "kemono" then
  1256. status.addEphemeralEffect("racekemono",math.huge)
  1257. end
  1258.  
  1259. --ningen (exact same as fucking humans)
  1260. if world.entitySpecies(entity.id()) == "ningen" then
  1261.  
  1262. end
  1263.  
  1264. --LLL (wolves , Locus Les Loupes)
  1265. if world.entitySpecies(entity.id()) == "loupes" then
  1266.  
  1267. end
  1268.  
  1269. --mephetor (skunk)
  1270. if world.entitySpecies(entity.id()) == "mephetor" then
  1271.  
  1272. end
  1273.  
  1274. local mouthPosition = vec2.add(mcontroller.position(), status.statusProperty("mouthPosition"))
  1275. if status.statPositive("breathProtection") or world.breathable(mouthPosition)
  1276. or status.statPositive("waterbreathProtection") and world.liquidAt(mouthPosition)
  1277. then
  1278. status.modifyResource("breath", status.stat("breathRegenerationRate") * dt)
  1279. else
  1280. status.modifyResource("breath", -status.stat("breathDepletionRate") * dt)
  1281. end
  1282.  
  1283.  
  1284.  
  1285.  
  1286. end[
  1287.  
  1288. { "op": "replace",
  1289. "path" : "/charCreationTooltip/description" ,
  1290. "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;."
  1291. }
  1292.  
  1293. ][
  1294.  
  1295. { "op": "replace",
  1296. "path" : "/charCreationTooltip/description" ,
  1297. "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."
  1298. }
  1299. ][
  1300.  
  1301. { "op": "replace",
  1302. "path" : "/charCreationTooltip/description" ,
  1303. "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;."
  1304. }
  1305.  
  1306. ][
  1307.  
  1308. { "op": "replace",
  1309. "path" : "/charCreationTooltip/description" ,
  1310. "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;."
  1311. }
  1312.  
  1313. ][
  1314.  
  1315. { "op": "replace",
  1316. "path" : "/charCreationTooltip/description" ,
  1317. "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;."
  1318. }
  1319.  
  1320. ][
  1321. { "op": "replace",
  1322. "path" : "/charCreationTooltip/description" ,
  1323. "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;."
  1324. }
  1325. ][
  1326.  
  1327. { "op": "replace",
  1328. "path" : "/charCreationTooltip/description" ,
  1329. "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;."
  1330. }
  1331.  
  1332. ][
  1333.  
  1334. { "op": "replace",
  1335. "path" : "/charCreationTooltip/description" ,
  1336. "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;."
  1337. }
  1338.  
  1339. ]{
  1340. "name" : "camouflage100",
  1341. "effectConfig" : {
  1342. "alpha" : 1
  1343. },
  1344. "defaultDuration" : 5,
  1345.  
  1346. "scripts" : [
  1347. "camouflage.lua"
  1348. ],
  1349.  
  1350. "label" : "Invisible",
  1351. "icon" : "/interface/statuses/invisible.png"
  1352. }
  1353. {
  1354. "name" : "camouflage85",
  1355. "effectConfig" : {
  1356. "alpha" : 0.85
  1357. },
  1358. "defaultDuration" : 5,
  1359.  
  1360. "scripts" : [
  1361. "camouflage.lua"
  1362. ],
  1363.  
  1364. "label" : "Camouflage",
  1365. "icon" : "/interface/statuses/invisible.png"
  1366. }
  1367. {
  1368. "name" : "camouflage99",
  1369. "effectConfig" : {
  1370. "alpha" : 0.99
  1371. },
  1372. "defaultDuration" : 5,
  1373.  
  1374. "scripts" : [
  1375. "camouflage.lua"
  1376. ],
  1377.  
  1378. "label" : "Camouflage",
  1379. "icon" : "/interface/statuses/invisible.png"
  1380. }
  1381. function init()
  1382. local bounds = mcontroller.boundBox()
  1383. self.critChance = config.getParameter("critChance")
  1384. self.critBonus = config.getParameter("critBonus")
  1385. self.powerModifier = config.getParameter("powerModifier", 0)
  1386. script.setUpdateDelta(10)
  1387. end
  1388.  
  1389.  
  1390. function generateCrit()
  1391.  
  1392. damageOutput = baseDamage + baseDamage * critMult(weapon) + critBonus(weapon)
  1393. rawDamage = weapon.damageOutput
  1394. damageInput = rawDamage - rawDamage * critMitigation(me)
  1395.  
  1396.  
  1397. if math.random(100) < critChance then
  1398. critDamage = critBonus * powerModifier
  1399. else
  1400. critDamage = 0
  1401. end
  1402. return critDamage
  1403. end
  1404.  
  1405.  
  1406. function update(dt)
  1407. if status.resourcePositive("perfectBlock") then
  1408. self.healingRate = 1.01 / config.getParameter("healTime", 180)
  1409. status.modifyResourcePercentage("health", self.healingRate * dt)
  1410. end
  1411. end
  1412.  
  1413.  
  1414. function uninit()
  1415.  
  1416. endfunction init()
  1417. local bounds = mcontroller.boundBox()
  1418. self.critChance = config.getParameter("critChance")
  1419. self.critBonus = config.getParameter("critBonus")
  1420. self.powerModifier = config.getParameter("powerModifier", 0)
  1421. script.setUpdateDelta(10)
  1422. end
  1423.  
  1424.  
  1425. function generateCrit()
  1426.  
  1427. damageOutput = baseDamage + baseDamage * critMult(weapon) + critBonus(weapon)
  1428. rawDamage = weapon.damageOutput
  1429. damageInput = rawDamage - rawDamage * critMitigation(me)
  1430.  
  1431.  
  1432. if math.random(100) < critChance then
  1433. critDamage = critBonus * powerModifier
  1434. else
  1435. critDamage = 0
  1436. end
  1437. return critDamage
  1438. end
  1439.  
  1440.  
  1441. function update(dt)
  1442. if status.resourcePositive("perfectBlock") then
  1443. self.healingRate = 1.01 / config.getParameter("healTime", 180)
  1444. status.modifyResourcePercentage("health", self.healingRate * dt)
  1445. end
  1446. end
  1447.  
  1448.  
  1449. function uninit()
  1450.  
  1451. endfunction init()
  1452. local bounds = mcontroller.boundBox()
  1453. self.critChance = config.getParameter("critChance")
  1454. self.critBonus = config.getParameter("critBonus")
  1455. self.powerModifier = config.getParameter("powerModifier", 0)
  1456. script.setUpdateDelta(10)
  1457. end
  1458.  
  1459.  
  1460. function generateCrit()
  1461.  
  1462. damageOutput = baseDamage + baseDamage * critMult(weapon) + critBonus(weapon)
  1463. rawDamage = weapon.damageOutput
  1464. damageInput = rawDamage - rawDamage * critMitigation(me)
  1465.  
  1466.  
  1467. if math.random(100) < critChance then
  1468. critDamage = critBonus * powerModifier
  1469. else
  1470. critDamage = 0
  1471. end
  1472. return critDamage
  1473. end
  1474.  
  1475.  
  1476. function update(dt)
  1477. if status.resourcePositive("perfectBlock") then
  1478. self.healingRate = 1.01 / config.getParameter("healTime", 180)
  1479. status.modifyResourcePercentage("health", self.healingRate * dt)
  1480. end
  1481. end
  1482.  
  1483.  
  1484. function uninit()
  1485.  
  1486. endfunction init()
  1487. local bounds = mcontroller.boundBox()
  1488. script.setUpdateDelta(10)
  1489. end
  1490.  
  1491. -- not working right. heals every time i press block. need to only be on a perfect block
  1492. function update(dt)
  1493. if status.resourcePositive("perfectBlock") then
  1494. self.healingRate = 24.01 / 2
  1495. status.modifyResourcePercentage("health", self.healingRate * dt)
  1496. end
  1497. end
  1498.  
  1499.  
  1500. function uninit()
  1501.  
  1502. end{
  1503. "particleEmitters" : {
  1504. "embers" : {
  1505. "enabled" : true,
  1506. "emissionRate" : 25.0,
  1507. "particles" : [
  1508. {
  1509. "particle" : {
  1510. "type" : "ember",
  1511. "size" : 1.5,
  1512. "color" : [170, 50, 50, 230],
  1513. "fade" : 0.9,
  1514. "destructionAction" : "shrink",
  1515. "destructionTime" : 0.8,
  1516. "position" : [0.0, 0.0],
  1517. "offsetRegion" : [0, 0, 0, 0],
  1518. "initialVelocity" : [0, 2],
  1519. "approach" : [0, 10],
  1520. "timeToLive" : 0.3,
  1521. "variance" : {
  1522. "initialVelocity" : [0, 1]
  1523. }
  1524. }
  1525. }
  1526. ]
  1527. },
  1528. "statustext" : {
  1529. "enabled" : true,
  1530. "emissionRate" : 1.0,
  1531. "particles" : [
  1532. {
  1533. "particle" : {
  1534. "type" : "text",
  1535. "text" : "Dmg Bonus",
  1536. "size" : 0.75,
  1537. "color" : [170, 50, 50, 230],
  1538. "fade" : 1,
  1539. "destructionAction" : "shrink",
  1540. "destructionTime" : 0.8,
  1541. "position" : [0.0, 0.0],
  1542. "offsetRegion" : [0, 0, 0, 0],
  1543. "initialVelocity" : [0, 4],
  1544. "finalVelocity" : [0, 1],
  1545. "approach" : [0, 10],
  1546. "timeToLive" : 1,
  1547. "variance" : {
  1548. }
  1549. }
  1550. }
  1551. ]
  1552. }
  1553. }
  1554. }
  1555. function init()
  1556. --Power
  1557. self.powerModifier = config.getParameter("powerModifier", 0)
  1558. effect.addStatModifierGroup({{stat = "powerMultiplier", baseMultiplier = self.powerModifier}})
  1559. end
  1560.  
  1561.  
  1562. function update(dt)
  1563.  
  1564. end
  1565.  
  1566. function uninit()
  1567.  
  1568. end
  1569. {
  1570. "name" : "damagebonusavian",
  1571. "effectConfig" : {
  1572. "powerModifier" : 1.07
  1573. },
  1574. "defaultDuration" : 300,
  1575.  
  1576. "scripts" : [
  1577. "damagebonusavian.lua"
  1578. ],
  1579.  
  1580. "animationConfig" : "damagebonusavian.animation",
  1581.  
  1582. "label" : "Dmg+"
  1583. }
  1584. {
  1585. "name" : "damagebonusfelin",
  1586. "effectConfig" : {
  1587. "powerModifier" : 1.08
  1588. },
  1589. "defaultDuration" : 300,
  1590.  
  1591. "scripts" : [
  1592. "damagebonusavian.lua"
  1593. ],
  1594.  
  1595. "animationConfig" : "damagebonusavian.animation",
  1596.  
  1597. "label" : "Dmg+"
  1598. }
  1599. function init()
  1600. effect.addStatModifierGroup({{stat = "protection", amount = config.getParameter("defenseAmount", 0)}})
  1601.  
  1602. script.setUpdateDelta(0)
  1603. end
  1604.  
  1605. function update(dt)
  1606.  
  1607. end
  1608.  
  1609. function uninit()
  1610.  
  1611. end{
  1612. "name" : "hylotlunderwater",
  1613. "effectConfig" : {
  1614. "defenseAmount" : 14
  1615. },
  1616. "defaultDuration" : 60,
  1617.  
  1618. "scripts" : [
  1619. "defenseboost.lua"
  1620. ],
  1621.  
  1622. "label" : "Def +",
  1623. "icon" : "/interface/statuses/defense2.png"
  1624. }
  1625. {
  1626. "lights" : {
  1627. "glow" : {
  1628. "active" : true,
  1629. "position" : [0, 0],
  1630. "color" : [60, 90, 60],
  1631. "pointLight" : false
  1632. }
  1633. }
  1634. }
  1635. {
  1636. "name" : "familiarglow",
  1637. "effectConfig" : {},
  1638. "defaultDuration" : 5,
  1639.  
  1640. "scripts" : [],
  1641.  
  1642. "animationConfig" : "familiarglow.animation"
  1643. }
  1644. {
  1645. "particleEmitters" : {
  1646. "drips" : {
  1647. "enabled" : true,
  1648. "emissionRate" : 1.0,
  1649. "particles" : [
  1650. {
  1651. "particle" : {
  1652. "type" : "ember",
  1653. "size" : 1.0,
  1654. "color" : [30, 250, 30, 120],
  1655. "fade" : 0.9,
  1656. "destructionAction" : "shrink",
  1657. "destructionTime" : 0.8,
  1658. "position" : [0.0, 0.0],
  1659. "offsetRegion" : [0, 0, 0, 0],
  1660. "initialVelocity" : [0, -1.0],
  1661. "finalVelocity" : [0, -6],
  1662. "approach" : [0, 10],
  1663. "timeToLive" : 0.6,
  1664. "variance" : {
  1665. "initialVelocity" : [0.2, 0],
  1666. "size" : 0.5
  1667. }
  1668. }
  1669. }
  1670. ]
  1671. }
  1672. }
  1673. }
  1674. function init()
  1675. animator.setParticleEmitterOffsetRegion("drips", mcontroller.boundBox())
  1676. animator.setParticleEmitterActive("drips", true)
  1677.  
  1678. script.setUpdateDelta(5)
  1679.  
  1680. self.tickDamagePercentage = 0.010
  1681. self.tickTime = 1.0
  1682. self.tickTimer = self.tickTime
  1683. end
  1684.  
  1685. function update(dt)
  1686.  
  1687. if not world.entitySpecies(entity.id()) == "floran" then
  1688.  
  1689. self.tickTimer = self.tickTimer - dt
  1690. if self.tickTimer <= 0 then
  1691. self.tickTimer = self.tickTime
  1692. status.applySelfDamageRequest({
  1693. damageType = "IgnoresDef",
  1694. damage = math.floor(status.resourceMax("health") * self.tickDamagePercentage) + 1,
  1695. damageSourceKind = "poison",
  1696. sourceEntityId = entity.id()
  1697. })
  1698. end
  1699.  
  1700. effect.setParentDirectives("fade=00AA00="..self.tickTimer * 0.4)
  1701.  
  1702. end
  1703.  
  1704. end
  1705.  
  1706. function uninit()
  1707.  
  1708. end{
  1709. "name" : "carnivorefood",
  1710. "blockingStat" : "poisonStatusImmunity",
  1711.  
  1712. "effectConfig" : {},
  1713. "defaultDuration" : 30,
  1714.  
  1715. "scripts" : [
  1716. "carnivorefood.lua"
  1717. ],
  1718.  
  1719. "animationConfig" : "carnivorefood.animation",
  1720.  
  1721. "label" : "Food Poisoning",
  1722. "icon" : "/interface/statuses/foodpoison.png"
  1723. }
  1724. {
  1725. "particleEmitters" : {
  1726. "drips" : {
  1727. "enabled" : true,
  1728. "emissionRate" : 1.0,
  1729. "particles" : [
  1730. {
  1731. "particle" : {
  1732. "type" : "ember",
  1733. "size" : 1.0,
  1734. "color" : [30, 250, 30, 120],
  1735. "fade" : 0.9,
  1736. "destructionAction" : "shrink",
  1737. "destructionTime" : 0.8,
  1738. "position" : [0.0, 0.0],
  1739. "offsetRegion" : [0, 0, 0, 0],
  1740. "initialVelocity" : [0, -1.0],
  1741. "finalVelocity" : [0, -6],
  1742. "approach" : [0, 10],
  1743. "timeToLive" : 0.6,
  1744. "variance" : {
  1745. "initialVelocity" : [0.2, 0],
  1746. "size" : 0.5
  1747. }
  1748. }
  1749. }
  1750. ]
  1751. }
  1752. }
  1753. }
  1754. function init()
  1755.  
  1756. self.tickDamagePercentage = 0.005
  1757. self.tickTime = 5.0
  1758. self.tickTimer = self.tickTime
  1759.  
  1760. animator.setParticleEmitterOffsetRegion("drips", mcontroller.boundBox())
  1761. animator.setParticleEmitterActive("drips", true)
  1762.  
  1763. end
  1764.  
  1765.  
  1766.  
  1767. function update(dt)
  1768.  
  1769. if world.entitySpecies(entity.id()) == "floran" then
  1770. self.tickTimer = self.tickTimer - dt
  1771.  
  1772. if self.tickTimer <= 0 then
  1773. self.tickTimer = self.tickTime
  1774. status.applySelfDamageRequest({
  1775. damageType = "IgnoresDef",
  1776. damage = math.floor(status.resourceMax("health") * self.tickDamagePercentage) + 1,
  1777. damageSourceKind = "poison",
  1778. sourceEntityId = entity.id()
  1779. })
  1780. end
  1781.  
  1782. effect.setParentDirectives("fade=ffea55="..self.tickTimer * 0.4)
  1783.  
  1784.  
  1785. mcontroller.controlModifiers({
  1786. speedModifier = 0.80,
  1787. airJumpModifier = 0.80
  1788. })
  1789.  
  1790. end
  1791.  
  1792.  
  1793.  
  1794. end
  1795.  
  1796.  
  1797.  
  1798. function uninit()
  1799.  
  1800. end{
  1801. "name" : "carnivorefoodcooked",
  1802. "blockingStat" : "poisonStatusImmunity",
  1803.  
  1804. "effectConfig" : {},
  1805. "defaultDuration" : 30,
  1806.  
  1807. "scripts" : [
  1808. "carnivorefoodcooked.lua"
  1809. ],
  1810.  
  1811. "animationConfig" : "carnivorefoodcooked.animation",
  1812.  
  1813. "label" : "Food Poisoning",
  1814. "icon" : "/interface/statuses/foodpoison.png"
  1815. }
  1816. {
  1817. "particleEmitters" : {
  1818. "drips" : {
  1819. "enabled" : true,
  1820. "emissionRate" : 12.0,
  1821. "particles" : [
  1822. {
  1823. "particle" : {
  1824. "type" : "ember",
  1825. "size" : 1.0,
  1826. "color" : [20, 30, 230, 120],
  1827. "fade" : 0.9,
  1828. "destructionAction" : "shrink",
  1829. "destructionTime" : 0.8,
  1830. "position" : [0.0, 0.0],
  1831. "offsetRegion" : [0, 0, 0, 0],
  1832. "initialVelocity" : [0, -1.0],
  1833. "finalVelocity" : [0, -6],
  1834. "approach" : [0, 10],
  1835. "timeToLive" : 0.6,
  1836. "variance" : {
  1837. "initialVelocity" : [0.2, 0],
  1838. "size" : 0.5
  1839. }
  1840. }
  1841. }
  1842. ]
  1843. }
  1844. }
  1845. }
  1846. function init()
  1847. --animator.setParticleEmitterOffsetRegion("drips", mcontroller.boundBox())
  1848. --animator.setParticleEmitterActive("drips", true)
  1849.  
  1850. self.protectionBonus = config.getParameter("protectionBonus", 0)
  1851. baseValue = config.getParameter("healthBonus",0)*(status.resourceMax("health"))
  1852. baseValue2 = config.getParameter("energyBonus",0)*(status.resourceMax("energy"))
  1853. baseValue3 = config.getParameter("fallBonus",0)*(status.stat("fallDamageMultiplier"))
  1854. isGlitchx= 0
  1855. isNot=0
  1856.  
  1857. baseValue4 = config.getParameter("healthPenalty",0)*(status.resourceMax("health"))
  1858. baseValue5 = config.getParameter("energyPenalty",0)*(status.resourceMax("energy"))
  1859. self.protectionBonus2 = config.getParameter("protectionPenalty", 0)
  1860.  
  1861. self.tickDamagePercentage = 0.010
  1862. self.tickTime = 1.0
  1863. self.tickTimer = self.tickTime
  1864.  
  1865. script.setUpdateDelta(5)
  1866. end
  1867.  
  1868. function update(dt)
  1869.  
  1870. if world.entitySpecies(entity.id()) == "glitch" then
  1871. isGlitchx=1
  1872. applyEffects()
  1873. else
  1874. isGlitchx=0
  1875. applyEffects()
  1876. end
  1877.  
  1878. self.tickTimer = self.tickTimer - dt
  1879.  
  1880. if self.tickTimer <= 0 then
  1881. self.tickTimer = self.tickTime
  1882. if isNot >= 1 then
  1883. status.applySelfDamageRequest({
  1884. damageType = "IgnoresDef",
  1885. damage = math.floor(status.resourceMax("health") * self.tickDamagePercentage) + 1,
  1886. damageSourceKind = "poison",
  1887. sourceEntityId = entity.id()
  1888. })
  1889. effect.setParentDirectives("fade=806e4f="..self.tickTimer * 0.4)
  1890. end
  1891. end
  1892. end
  1893.  
  1894. function applyEffects()
  1895. if isGlitchx==1 then
  1896. status.setPersistentEffects("glitchpower1", {{stat = "protection", amount = self.protectionBonus}})
  1897. status.setPersistentEffects("glitchpower2", {{stat = "maxHealth", amount = baseValue }})
  1898. status.setPersistentEffects("glitchpower3", {{stat = "maxEnergy", amount = baseValue2 }})
  1899. status.setPersistentEffects("glitchpower4", {{stat = "fallDamageMultiplier", amount = baseValue3}})
  1900. isGlitchx=2
  1901. elseif isGlitchx==0 then
  1902. status.setPersistentEffects("noglitch1", {{stat = "protection", amount = self.protectionBonus2}})
  1903. status.setPersistentEffects("noglitch2", {{stat = "maxHealth", amount = baseValue4 }})
  1904. status.setPersistentEffects("noglitch3", {{stat = "maxEnergy", amount = baseValue5 }})
  1905. isGlitchx=0
  1906. isNot=1
  1907. end
  1908.  
  1909. end
  1910.  
  1911. function uninit()
  1912. status.clearPersistentEffects("glitchpower1")
  1913. status.clearPersistentEffects("glitchpower2")
  1914. status.clearPersistentEffects("glitchpower3")
  1915. status.clearPersistentEffects("glitchpower4")
  1916. status.clearPersistentEffects("noglitch1")
  1917. status.clearPersistentEffects("noglitch2")
  1918. status.clearPersistentEffects("noglitch3")
  1919. end{
  1920. "name" : "robofood",
  1921.  
  1922. "effectConfig" : {
  1923. "healthBonus" : 0.05,
  1924. "energyBonus" : 0.08,
  1925. "protectionBonus" : 3,
  1926. "healthPenalty" : -0.05,
  1927. "energyPenalty" : -0.08,
  1928. "protectionPenalty" : -3,
  1929. "fallBonus" : -0.5
  1930. },
  1931. "defaultDuration" : 60,
  1932.  
  1933. "scripts" : [
  1934. "robofood.lua"
  1935. ],
  1936.  
  1937. "animationConfig" : "robofood.animation",
  1938.  
  1939. "label" : "Glitch Food",
  1940. "icon" : "/interface/statuses/foodpoison.png"
  1941. }
  1942. {
  1943. "name" : "robofood2",
  1944.  
  1945. "effectConfig" : {
  1946. "healthBonus" : 0.07,
  1947. "energyBonus" : 0.10,
  1948. "protectionBonus" : 6,
  1949. "healthPenalty" : -0.07,
  1950. "energyPenalty" : -0.10,
  1951. "protectionPenalty" : -6,
  1952. "fallBonus" : -0.1
  1953. },
  1954. "defaultDuration" : 60,
  1955.  
  1956. "scripts" : [
  1957. "robofood.lua"
  1958. ],
  1959.  
  1960. "animationConfig" : "robofood.animation",
  1961.  
  1962. "label" : "Glitch Food",
  1963. "icon" : "/interface/statuses/foodpoison.png"
  1964. }
  1965. {
  1966. "name" : "robofood3",
  1967.  
  1968. "effectConfig" : {
  1969. "healthBonus" : 0.10,
  1970. "energyBonus" : 0.20,
  1971. "protectionBonus" : 9,
  1972. "healthPenalty" : -0.10,
  1973. "energyPenalty" : -0.20,
  1974. "protectionPenalty" : -9,
  1975. "fallBonus" : -0.15
  1976. },
  1977. "defaultDuration" : 60,
  1978.  
  1979. "scripts" : [
  1980. "robofood.lua"
  1981. ],
  1982.  
  1983. "animationConfig" : "robofood.animation",
  1984.  
  1985. "label" : "Glitch Food",
  1986. "icon" : "/interface/statuses/foodpoison.png"
  1987. }
  1988. function init()
  1989. effect.addStatModifierGroup({
  1990. {stat = "beestingImmunity", amount = 1},
  1991. {stat = "honeyslowImmunity", amount = 1}
  1992. })
  1993. end
  1994.  
  1995. function update(dt)
  1996. end
  1997.  
  1998. function uninit()
  1999.  
  2000. end{
  2001. "name" : "beeimmunity",
  2002. "effectConfig" : {},
  2003. "defaultDuration" : 120,
  2004.  
  2005. "scripts" : [
  2006. "beeimmunity.lua"
  2007. ]
  2008. }
  2009. function init()
  2010. effect.addStatModifierGroup({
  2011. {stat = "beestingImmunity", amount = 1}
  2012. })
  2013. end
  2014.  
  2015. function update(dt)
  2016. end
  2017.  
  2018. function uninit()
  2019.  
  2020. end{
  2021. "name" : "beestingimmunity",
  2022. "effectConfig" : {},
  2023. "defaultDuration" : 120,
  2024.  
  2025. "scripts" : [
  2026. "beestingimmunity.lua"
  2027. ]
  2028. }
  2029. function init()
  2030. effect.addStatModifierGroup({
  2031. {stat = "biooozeImmunity", amount = 1},
  2032. {stat = "poisonStatusImmunity", amount = 1}
  2033. })
  2034. end
  2035.  
  2036. function update(dt)
  2037. end
  2038.  
  2039. function uninit()
  2040.  
  2041. end{
  2042. "name" : "biooozeimmunity",
  2043. "effectConfig" : {},
  2044. "defaultDuration" : 120,
  2045.  
  2046. "scripts" : [
  2047. "biooozeimmunity.lua"
  2048. ]
  2049. }
  2050. function init()
  2051. effect.addStatModifierGroup({
  2052. {stat = "blacktarImmunity", amount = 1}
  2053. })
  2054. end
  2055.  
  2056. function update(dt)
  2057. end
  2058.  
  2059. function uninit()
  2060.  
  2061. end{
  2062. "name" : "blacktarimmunity",
  2063. "effectConfig" : {},
  2064. "defaultDuration" : 120,
  2065.  
  2066. "scripts" : [
  2067. "blacktarimmunity.lua"
  2068. ]
  2069. }
  2070. function init()
  2071. effect.addStatModifierGroup({
  2072. {stat = "biomecoldImmunity", amount = 1}
  2073. })
  2074. end
  2075.  
  2076. function update(dt)
  2077. end
  2078.  
  2079. function uninit()
  2080.  
  2081. end{
  2082. "name" : "coldimmunity",
  2083. "effectConfig" : {},
  2084. "defaultDuration" : 120,
  2085.  
  2086. "scripts" : [
  2087. "coldimmunity.lua"
  2088. ]
  2089. }
  2090. function init()
  2091. script.setUpdateDelta(0)
  2092. end
  2093.  
  2094. function update(dt)
  2095.  
  2096. end
  2097.  
  2098. function uninit()
  2099.  
  2100. end{
  2101. "name" : "fedhoney",
  2102. "effectConfig" : {},
  2103. "defaultDuration" : 300,
  2104.  
  2105. "scripts" : [
  2106. "fedhoney.lua"
  2107. ],
  2108.  
  2109. "label" : "Too much Honey"
  2110. }
  2111. function init()
  2112. effect.addStatModifierGroup({
  2113. {stat = "ffextremecoldImmunity", amount = 1},
  2114. {stat = "biomecoldImmunity", amount = 1}
  2115. })
  2116. end
  2117.  
  2118. function update(dt)
  2119. end
  2120.  
  2121. function uninit()
  2122.  
  2123. end{
  2124. "name" : "ffextremecoldimmunity",
  2125. "effectConfig" : {},
  2126. "defaultDuration" : 60,
  2127.  
  2128. "scripts" : [
  2129. "ffextremecoldimmunity.lua"
  2130. ],
  2131. "label" : "Cold Immunity",
  2132. "icon" : "/interface/statuses/biomecold.png"
  2133. }
  2134. {
  2135. "name" : "ffextremecoldimmunityicon",
  2136. "effectConfig" : {},
  2137.  
  2138. "scripts" : [],
  2139. "label" : "Cold Shld",
  2140. "icon" : "/interface/statuses/biomecold.png"
  2141. }
  2142. function init()
  2143. effect.addStatModifierGroup({
  2144. {stat = "ffextremeheatImmunity", amount = 1},
  2145. {stat = "biomeheatImmunity", amount = 1}
  2146. })
  2147. end
  2148.  
  2149. function update(dt)
  2150. end
  2151.  
  2152. function uninit()
  2153.  
  2154. end{
  2155. "name" : "ffextremeheatimmunity",
  2156. "effectConfig" : {},
  2157. "defaultDuration" : 60,
  2158.  
  2159. "scripts" : [
  2160. "ffextremeheatimmunity.lua"
  2161. ],
  2162. "label" : "Heat Shld",
  2163. "icon" : "/interface/statuses/biomeheat.png"
  2164. }
  2165. {
  2166. "name" : "ffextremeheatimmunityicon",
  2167. "effectConfig" : {},
  2168.  
  2169. "scripts" : [],
  2170. "label" : "Heat Shld",
  2171. "icon" : "/interface/statuses/biomeheat.png"
  2172. }
  2173. function init()
  2174. effect.addStatModifierGroup({
  2175. {stat = "ffextremeradiationImmunity", amount = 1},
  2176. {stat = "biomeradiationImmunity", amount = 1}
  2177. })
  2178. end
  2179.  
  2180. function update(dt)
  2181. end
  2182.  
  2183. function uninit()
  2184.  
  2185. end{
  2186. "name" : "ffextremeradiationimmunity",
  2187. "effectConfig" : {},
  2188. "defaultDuration" : 60,
  2189.  
  2190. "scripts" : [
  2191. "ffextremeradiationimmunity.lua"
  2192. ],
  2193. "label" : "Rad Proof",
  2194. "icon" : "/interface/statuses/biomeradioactive.png"
  2195. }
  2196. {
  2197. "name" : "ffextremeradiationimmunityicon",
  2198. "effectConfig" : {},
  2199.  
  2200. "scripts" : [],
  2201.  
  2202. "label" : "Rad Shld",
  2203. "icon" : "/interface/statuses/biomeradioactive.png"
  2204. }
  2205. function init()
  2206. effect.addStatModifierGroup({
  2207. {stat = "fireStatusImmunity", amount = 1}
  2208. })
  2209. end
  2210.  
  2211. function update(dt)
  2212. end
  2213.  
  2214. function uninit()
  2215.  
  2216. end{
  2217. "name" : "fireStatusImmunity",
  2218. "effectConfig" : {},
  2219. "defaultDuration" : 60,
  2220.  
  2221. "scripts" : [
  2222. "fireimmunity.lua"
  2223. ]
  2224. }
  2225. function init()
  2226. effect.addStatModifierGroup({
  2227. {stat = "fumudslowImmunity", amount = 1}
  2228. })
  2229. end
  2230.  
  2231. function update(dt)
  2232. end
  2233.  
  2234. function uninit()
  2235.  
  2236. end{
  2237. "name" : "fumudslowimmunity",
  2238. "effectConfig" : {},
  2239. "defaultDuration" : 120,
  2240.  
  2241. "scripts" : [
  2242. "fumudslowimmunity.lua"
  2243. ]
  2244. }
  2245. function init()
  2246. effect.addStatModifierGroup({
  2247. {stat = "biomeheatImmunity", amount = 1}
  2248. })
  2249. end
  2250.  
  2251. function update(dt)
  2252. end
  2253.  
  2254. function uninit()
  2255.  
  2256. end{
  2257. "name" : "heatimmunity",
  2258. "effectConfig" : {},
  2259. "defaultDuration" : 120,
  2260.  
  2261. "scripts" : [
  2262. "heatimmunity.lua"
  2263. ]
  2264. }
  2265. function init()
  2266. effect.addStatModifierGroup({
  2267. {stat = "honeyslowImmunity", amount = 1}
  2268. })
  2269. end
  2270.  
  2271. function update(dt)
  2272. end
  2273.  
  2274. function uninit()
  2275.  
  2276. end{
  2277. "name" : "honeyslowimmunity",
  2278. "effectConfig" : {},
  2279. "defaultDuration" : 120,
  2280.  
  2281. "scripts" : [
  2282. "honeyslowimmunity.lua"
  2283. ]
  2284. }
  2285. function init()
  2286. effect.addStatModifierGroup({
  2287. {stat = "iceslipImmunity", amount = 1}
  2288. })
  2289. end
  2290.  
  2291. function update(dt)
  2292. end
  2293.  
  2294. function uninit()
  2295.  
  2296. end{
  2297. "name" : "iceslipimmunity",
  2298. "effectConfig" : {},
  2299. "defaultDuration" : 120,
  2300.  
  2301. "scripts" : [
  2302. "iceslipimmunity.lua"
  2303. ]
  2304. }
  2305. function init()
  2306. effect.addStatModifierGroup({{stat = "beesting", baseMultiplier = -2}})
  2307. effect.addStatModifierGroup({{stat = "beesting", tickDamagePercentage = 0}})
  2308. end
  2309.  
  2310. function update(dt)
  2311.  
  2312. end
  2313.  
  2314. function uninit()
  2315.  
  2316. end{
  2317. "name" : "immunesting",
  2318. "effectConfig" : {},
  2319. "defaultDuration" : 120,
  2320.  
  2321. "scripts" : [
  2322. "immunesting.lua"
  2323. ],
  2324.  
  2325. "label" : "Sting Immunity",
  2326. "icon" : "/interface/statuses/StingImmune.png"
  2327. }
  2328. function init()
  2329. effect.addStatModifierGroup({
  2330. {stat = "insanityImmunity", amount = 1}
  2331. })
  2332. end
  2333.  
  2334. function update(dt)
  2335. end
  2336.  
  2337. function uninit()
  2338.  
  2339. end{
  2340. "name" : "insanityimmunity",
  2341. "effectConfig" : {},
  2342. "defaultDuration" : 120,
  2343.  
  2344. "scripts" : [
  2345. "insanityimmunity.lua"
  2346. ]
  2347. }
  2348. function init()
  2349. effect.addStatModifierGroup({
  2350. {stat = "jungleslowImmunity", amount = 1}
  2351. })
  2352. end
  2353.  
  2354. function update(dt)
  2355. end
  2356.  
  2357. function uninit()
  2358.  
  2359. end{
  2360. "name" : "jungleslowimmunity",
  2361. "effectConfig" : {},
  2362. "defaultDuration" : 60,
  2363.  
  2364. "scripts" : [
  2365. "jungleslowimmunity.lua"
  2366. ]
  2367. }
  2368. function init()
  2369. effect.addStatModifierGroup({
  2370. {stat = "lavaImmunity", amount = 1}
  2371. })
  2372. end
  2373.  
  2374. function update(dt)
  2375. end
  2376.  
  2377. function uninit()
  2378.  
  2379. end{
  2380. "name" : "lavaimmunity",
  2381. "effectConfig" : {},
  2382. "defaultDuration" : 60,
  2383.  
  2384. "scripts" : [
  2385. "lavaimmunity.lua"
  2386. ]
  2387. }
  2388. function init()
  2389. effect.addStatModifierGroup({
  2390. {stat = "liquidnitrogenImmunity", amount = 1},
  2391. {stat = "nitrogenfreezeImmunity", amount = 1}
  2392. })
  2393. end
  2394.  
  2395. function update(dt)
  2396. end
  2397.  
  2398. function uninit()
  2399.  
  2400. end{
  2401. "name" : "liquidnitrogenimmunity",
  2402. "effectConfig" : {},
  2403. "defaultDuration" : 120,
  2404.  
  2405. "scripts" : [
  2406. "liquidnitrogenimmunity.lua"
  2407. ]
  2408. }
  2409. function init()
  2410. effect.addStatModifierGroup({
  2411. {stat = "poisonStatusImmunity", amount = 1}
  2412. })
  2413. end
  2414.  
  2415. function update(dt)
  2416. end
  2417.  
  2418. function uninit()
  2419.  
  2420. end{
  2421. "name" : "poisonStatusImmunity",
  2422. "effectConfig" : {},
  2423. "defaultDuration" : 60,
  2424.  
  2425. "scripts" : [
  2426. "poisonimmunity.lua"
  2427. ],
  2428. "label" : "Antidote",
  2429. "icon" : "/interface/statuses/antidote.png"
  2430. }
  2431. {
  2432. "name" : "poisonimmunityspongeweed",
  2433. "effectConfig" : {},
  2434. "defaultDuration" : 240,
  2435.  
  2436. "scripts" : [
  2437. "poisonimmunity.lua"
  2438. ],
  2439. "label" : "Antidote",
  2440. "icon" : "/interface/statuses/antidote.png"
  2441. }
  2442. function init()
  2443. effect.addStatModifierGroup({
  2444. {stat = "protoImmunity", amount = 1}
  2445. })
  2446. end
  2447.  
  2448. function update(dt)
  2449. end
  2450.  
  2451. function uninit()
  2452.  
  2453. end{
  2454. "name" : "protoimmunity",
  2455. "effectConfig" : {},
  2456. "defaultDuration" : 60,
  2457.  
  2458. "scripts" : [
  2459. "protoimmunity.lua"
  2460. ]
  2461. }
  2462. function init()
  2463. effect.addStatModifierGroup({
  2464. {stat = "pusImmunity", amount = 1}
  2465. })
  2466. end
  2467.  
  2468. function update(dt)
  2469. end
  2470.  
  2471. function uninit()
  2472.  
  2473. end{
  2474. "name" : "pusimmunity",
  2475. "effectConfig" : {},
  2476. "defaultDuration" : 60,
  2477.  
  2478. "scripts" : [
  2479. "pusimmunity.lua"
  2480. ],
  2481. "label" : "Pus Proof",
  2482. "icon" : "/interface/statuses/antidote.png"
  2483. }
  2484. function init()
  2485. effect.addStatModifierGroup({
  2486. {stat = "radiationburnImmunity", amount = 1}
  2487. })
  2488. end
  2489.  
  2490. function update(dt)
  2491. end
  2492.  
  2493. function uninit()
  2494.  
  2495. end{
  2496. "name" : "radiationburnimmunity",
  2497. "effectConfig" : {},
  2498. "defaultDuration" : 120,
  2499.  
  2500. "scripts" : [
  2501. "radiationburnimmunity.lua"
  2502. ]
  2503. }
  2504. function init()
  2505. effect.addStatModifierGroup({
  2506. {stat = "biomeradiationImmunity", amount = 1}
  2507. })
  2508. end
  2509.  
  2510. function update(dt)
  2511. end
  2512.  
  2513. function uninit()
  2514.  
  2515. end{
  2516. "name" : "radiationimmunity",
  2517. "effectConfig" : {},
  2518. "defaultDuration" : 120,
  2519.  
  2520. "scripts" : [
  2521. "radiationimmunity.lua"
  2522. ],
  2523. "label" : "Radiation Immunity",
  2524. "icon" : "/interface/statuses/biomeradioactive.png"
  2525. }
  2526. {
  2527. "name" : "radiationimmunityicon",
  2528. "effectConfig" : {},
  2529.  
  2530. "scripts" : [],
  2531.  
  2532. "label" : "Rad Shld",
  2533. "icon" : "/interface/statuses/biomeradioactive.png"
  2534. }
  2535. function init()
  2536. effect.addStatModifierGroup({
  2537. {stat = "slimestickImmunity", amount = 1}
  2538. })
  2539. end
  2540.  
  2541. function update(dt)
  2542. end
  2543.  
  2544. function uninit()
  2545.  
  2546. end{
  2547. "name" : "slimestickimmunity",
  2548. "effectConfig" : {},
  2549. "defaultDuration" : 120,
  2550.  
  2551. "scripts" : [
  2552. "slimestickimmunity.lua"
  2553. ]
  2554. }
  2555. function init()
  2556. effect.addStatModifierGroup({
  2557. {stat = "slushslowImmunity", amount = 1}
  2558. })
  2559. end
  2560.  
  2561. function update(dt)
  2562. end
  2563.  
  2564. function uninit()
  2565.  
  2566. end{
  2567. "name" : "slushslowimmunity",
  2568. "effectConfig" : {},
  2569. "defaultDuration" : 60,
  2570.  
  2571. "scripts" : [
  2572. "slushslowimmunity.lua"
  2573. ]
  2574. }
  2575. function init()
  2576. effect.addStatModifierGroup({
  2577. {stat = "snowslowImmunity", amount = 1}
  2578. })
  2579. end
  2580.  
  2581. function update(dt)
  2582. end
  2583.  
  2584. function uninit()
  2585.  
  2586. end{
  2587. "name" : "snowslowimmunity",
  2588. "effectConfig" : {},
  2589. "defaultDuration" : 60,
  2590.  
  2591. "scripts" : [
  2592. "snowslowimmunity.lua"
  2593. ]
  2594. }
  2595. function init()
  2596. effect.addStatModifierGroup({
  2597. {stat = "spiderwebImmunity", amount = 1}
  2598. })
  2599. end
  2600.  
  2601. function update(dt)
  2602. end
  2603.  
  2604. function uninit()
  2605.  
  2606. end{
  2607. "name" : "spiderwebimmunity",
  2608. "effectConfig" : {},
  2609. "defaultDuration" : 120,
  2610.  
  2611. "scripts" : [
  2612. "spiderwebimmunity.lua"
  2613. ]
  2614. }
  2615. function init()
  2616. effect.addStatModifierGroup({{stat = "fumudslowImmunity", amount = 1 }})
  2617. effect.addStatModifierGroup({{stat = "jungleslowImmunity", amount = 1 }})
  2618. baseValue = config.getParameter("healthBonus",0)*(status.resourceMax("health"))
  2619. effect.addStatModifierGroup({{stat = "maxHealth", amount = baseValue }})
  2620.  
  2621.  
  2622. local bounds = mcontroller.boundBox()
  2623. script.setUpdateDelta(10)
  2624.  
  2625. end
  2626.  
  2627. function update(dt)
  2628.  
  2629. end
  2630.  
  2631. function uninit()
  2632.  
  2633. end{
  2634. "name" : "raceapex",
  2635. "effectConfig" : {
  2636. "healthBonus" : 0.20
  2637. },
  2638.  
  2639. "defaultDuration" : 3,
  2640.  
  2641. "scripts" : [
  2642. "raceapex.lua"
  2643. ]
  2644.  
  2645. }
  2646. function init()
  2647. effect.addStatModifierGroup({{stat = "snowslowImmunity", amount = 1}})
  2648. effect.addStatModifierGroup({{stat = "biomecoldImmunity", amount = 1}})
  2649. effect.addStatModifierGroup({{stat = "iceStatusImmunity", amount = 1}})
  2650. local bounds = mcontroller.boundBox()
  2651. script.setUpdateDelta(10)
  2652. end
  2653.  
  2654. function update(dt)
  2655. if mcontroller.falling() then
  2656. mcontroller.controlParameters(config.getParameter("fallingParameters"))
  2657. mcontroller.setYVelocity(math.max(mcontroller.yVelocity(), config.getParameter("maxFallSpeed")))
  2658. end
  2659. mcontroller.controlModifiers({
  2660. speedModifier = 1.05,
  2661. airJumpModifier = 1.05
  2662. })
  2663. end
  2664.  
  2665. function uninit()
  2666.  
  2667. end{
  2668. "name" : "raceavali",
  2669. "effectConfig" : {
  2670. "healthBonus" : -0.10,
  2671. "energyBonus" : 0.05,
  2672. "fallingParameters" : {
  2673. "airForce" : 40,
  2674. "runSpeed" : 16,
  2675. "walkSpeed" : 16
  2676. },
  2677. "maxFallSpeed" : -30
  2678. },
  2679. "defaultDuration" : 3,
  2680.  
  2681. "scripts" : [
  2682. "raceavali.lua"
  2683. ]
  2684.  
  2685. }
  2686. {
  2687. "particleEmitters" : {
  2688. "embers" : {
  2689. "enabled" : false,
  2690. "emissionRate" : 0.0005,
  2691. "particles" : [
  2692. {
  2693. "particle" : {
  2694. "type" : "ember",
  2695. "size" : 0.5,
  2696. "color" : [55, 55, 55, 50],
  2697. "fade" : 0.9,
  2698. "destructionAction" : "shrink",
  2699. "destructionTime" : 0.8,
  2700. "position" : [0.0, 0.0],
  2701. "offsetRegion" : [0, 0, 0, 0],
  2702. "initialVelocity" : [0, 1],
  2703. "finalVelocity" : [0, 1],
  2704. "approach" : [0, 10],
  2705. "timeToLive" : 0.01,
  2706. "variance" : {
  2707. }
  2708. }
  2709. }
  2710. ]
  2711. },
  2712. "statustext" : {
  2713. "enabled" : false,
  2714. "emissionRate" : 0.0,
  2715. "particles" : [
  2716. {
  2717. "particle" : {
  2718. "type" : "text",
  2719. "text" : "avian",
  2720. "size" : 0.75,
  2721. "color" : [150, 220, 220, 230],
  2722. "fade" : 1,
  2723. "destructionAction" : "shrink",
  2724. "destructionTime" : 0.8,
  2725. "position" : [0.0, 0.0],
  2726. "offsetRegion" : [0, 0, 0, 0],
  2727. "initialVelocity" : [0, 4],
  2728. "finalVelocity" : [0, 1],
  2729. "approach" : [0, 10],
  2730. "timeToLive" : 0,
  2731. "variance" : {
  2732. }
  2733. }
  2734. }
  2735. ]
  2736. }
  2737. }
  2738. }
  2739. function init()
  2740. self.powerModifier = config.getParameter("powerModifier", 0)
  2741. effect.addStatModifierGroup({{stat = "powerMultiplier", baseMultiplier = self.powerModifier}})
  2742. effect.addStatModifierGroup({{stat = "fallDamageMultiplier", baseMultiplier = 0.35}})
  2743. self.movementParams = mcontroller.baseParameters()
  2744. local bounds = mcontroller.boundBox()
  2745. script.setUpdateDelta(5)
  2746. self.liquidMovementParameter = {
  2747. airJumpProfile = {
  2748. jumpSpeed = 30
  2749. }
  2750. }
  2751.  
  2752. end
  2753.  
  2754. function update(dt)
  2755. mcontroller.controlParameters(self.liquidMovementParameter)
  2756. if mcontroller.falling() then
  2757. mcontroller.controlParameters(config.getParameter("fallingParameters"))
  2758. mcontroller.setYVelocity(math.max(mcontroller.yVelocity(), config.getParameter("maxFallSpeed")))
  2759. end
  2760. end
  2761.  
  2762. function uninit()
  2763.  
  2764. end
  2765.  
  2766.  
  2767. {
  2768. "name" : "raceavian",
  2769. "effectConfig" : {
  2770. "powerModifier" : 1.075,
  2771. "healthBonus" : -0.15,
  2772. "energyBonus" : 0.1,
  2773.  
  2774. "fallingParameters" : {
  2775. "airForce" : 30,
  2776. "runSpeed" : 14,
  2777. "walkSpeed" : 14
  2778. },
  2779. "maxFallSpeed" : -39
  2780.  
  2781. },
  2782. "defaultDuration" : 3,
  2783.  
  2784. "scripts" : [
  2785. "raceavian.lua"
  2786. ]
  2787.  
  2788. }
  2789. function init()
  2790. effect.addStatModifierGroup({{stat = "fireStatusImmunity", amount = 1}})
  2791. effect.addStatModifierGroup({{stat = "biomeheatImmunity", amount = 1}})
  2792. effect.addStatModifierGroup({{stat = "maxHealth", amount = 20}})
  2793. script.setUpdateDelta(0)
  2794. end
  2795.  
  2796. function update(dt)
  2797.  
  2798. end
  2799.  
  2800. function uninit()
  2801.  
  2802. end{
  2803. "name" : "raceavikan",
  2804. "effectConfig" : {},
  2805. "defaultDuration" : 3,
  2806.  
  2807. "scripts" : [
  2808. "raceavikan.lua"
  2809. ]
  2810.  
  2811. }
  2812. function init()
  2813. effect.addStatModifierGroup({{stat = "maxBreath", amount = 200.0}})
  2814. effect.addStatModifierGroup({{stat = "biooozeImmunity", amount = 1}})
  2815. effect.addStatModifierGroup({{stat = "spiderwebImmunity", amount = 1}})
  2816. effect.addStatModifierGroup({{stat = "blacktarImmunity", amount = 1}})
  2817. local bounds = mcontroller.boundBox()
  2818. script.setUpdateDelta(10)
  2819. end
  2820.  
  2821. function update(dt)
  2822. mcontroller.controlModifiers({
  2823. speedModifier = 1.05
  2824. })
  2825. end
  2826.  
  2827. function uninit()
  2828.  
  2829. end{
  2830. "name" : "racefamiliar",
  2831. "effectConfig" : {},
  2832. "defaultDuration" : 3,
  2833.  
  2834. "scripts" : [
  2835. "racefamiliar.lua"
  2836. ]
  2837.  
  2838. }
  2839. function init()
  2840. effect.addStatModifierGroup({{stat = "insanityImmunity", amount = 1}})
  2841. self.powerModifier = config.getParameter("powerModifier", 0)
  2842. effect.addStatModifierGroup({{stat = "powerMultiplier", baseMultiplier = self.powerModifier}})
  2843. effect.addStatModifierGroup({{stat = "fallDamageMultiplier", effectiveMultiplier = 0.50}})
  2844. local bounds = mcontroller.boundBox()
  2845. script.setUpdateDelta(10)
  2846. end
  2847.  
  2848. function update(dt)
  2849. mcontroller.controlModifiers({
  2850. speedModifier = 1.07,
  2851. airJumpModifier = 1.15
  2852. })
  2853. end
  2854.  
  2855. function uninit()
  2856.  
  2857. end{
  2858. "name" : "racefelins",
  2859. "effectConfig" : {
  2860. "powerModifier" : 1.08
  2861. },
  2862. "defaultDuration" : 3,
  2863.  
  2864. "scripts" : [
  2865. "racefelins.lua"
  2866. ]
  2867.  
  2868. }
  2869. function init()
  2870. self.powerModifier = config.getParameter("powerModifier", 0)
  2871. effect.addStatModifierGroup({{stat = "powerMultiplier", baseMultiplier = self.powerModifier}})
  2872.  
  2873. baseValue = config.getParameter("healthBonus",0)*(status.resourceMax("health"))
  2874. effect.addStatModifierGroup({{stat = "maxHealth", amount = baseValue }})
  2875. baseValue2 = config.getParameter("energyBonus",0)*(status.resourceMax("energy"))
  2876. effect.addStatModifierGroup({{stat = "maxEnergy", amount = baseValue2 }})
  2877.  
  2878. effect.addStatModifierGroup({{stat = "poisonStatusImmunity", amount = 1}})
  2879. local bounds = mcontroller.boundBox()
  2880. script.setUpdateDelta(10)
  2881.  
  2882. end
  2883.  
  2884. function update(dt)
  2885.  
  2886. end
  2887.  
  2888. function uninit()
  2889.  
  2890. end{
  2891. "name" : "racefenerox",
  2892. "effectConfig" : {
  2893. "powerModifier" : 1.06,
  2894. "healthBonus" : -0.05,
  2895. "energyBonus" : 0.10
  2896. },
  2897. "defaultDuration" : 3,
  2898.  
  2899. "scripts" : [
  2900. "racefenerox.lua"
  2901. ]
  2902.  
  2903. }
  2904. function init()
  2905. baseValue = config.getParameter("healthBonus",0)*(status.resourceMax("health"))
  2906. effect.addStatModifierGroup({{stat = "maxHealth", amount = baseValue }})
  2907. baseValue2 = config.getParameter("energyBonus",0)*(status.resourceMax("energy"))
  2908. effect.addStatModifierGroup({{stat = "maxEnergy", amount = baseValue2 }})
  2909. effect.addStatModifierGroup({{stat = "breathDepletionRate", amount = 2.0 }})
  2910. effect.addStatModifierGroup({{stat = "electricStatusImmunity", amount = 1}})
  2911. script.setUpdateDelta(0)
  2912.  
  2913. end
  2914.  
  2915. function update(dt)
  2916.  
  2917. end
  2918.  
  2919. function uninit()
  2920.  
  2921. end{
  2922. "name" : "racefloran",
  2923. "effectConfig" : {
  2924. "healthBonus" : -0.1,
  2925. "energyBonus" : 0.15
  2926. },
  2927. "defaultDuration" : 3,
  2928.  
  2929. "scripts" : [
  2930. "racefloran.lua"
  2931. ]
  2932.  
  2933. }
  2934. require("/scripts/vec2.lua")
  2935.  
  2936. function init()
  2937. inWater=0
  2938. effect.addStatModifierGroup({{stat = "protection", amount = 7}})
  2939. effect.addStatModifierGroup({{stat = "waterbreathProtection", amount = 1}})
  2940. effect.addStatModifierGroup({{stat = "breathProtection", amount = 1}})
  2941. effect.addStatModifierGroup({{stat = "poisonStatusImmunity", amount = 1}})
  2942. effect.addStatModifierGroup({{stat = "beestingImmunity", amount = 1}})
  2943.  
  2944. baseValue = config.getParameter("healthBonus",0)*(status.resourceMax("health"))
  2945. effect.addStatModifierGroup({{stat = "maxHealth", amount = baseValue }})
  2946. baseValue2 = config.getParameter("energyBonus",0)*(status.resourceMax("energy"))
  2947. effect.addStatModifierGroup({{stat = "maxEnergy", amount = baseValue2 }})
  2948.  
  2949. script.setUpdateDelta(5)
  2950.  
  2951. end
  2952.  
  2953. function isDry()
  2954. local mouthPosition = vec2.add(mcontroller.position(), status.statusProperty("mouthPosition"))
  2955. if not world.liquidAt(mouthPosition) then
  2956. status.clearPersistentEffects("glitchweaken")
  2957. status.clearPersistentEffects("glitchweaken2")
  2958. status.clearPersistentEffects("glitchweaken3")
  2959. inWater = 0
  2960. end
  2961. end
  2962.  
  2963. function update(dt)
  2964. local mouthPosition = vec2.add(mcontroller.position(), status.statusProperty("mouthPosition"))
  2965.  
  2966. local mouthful = world.liquidAt(mouthposition)
  2967. local summationForDebug = ""
  2968.  
  2969. if mouthful then
  2970. summationForDebug = "Liq:" .. mouthful .. "/" .. inWater
  2971. else
  2972. summationForDebug = "Liq:nil/" .. inWater
  2973. end
  2974. world.debugText(summationForDebug,{mouthPosition[1]-(string.len(summationForDebug)*0.25),mouthPosition[2]},"red")
  2975.  
  2976. if world.liquidAt(mouthPosition) and inWater == 0 then
  2977. status.setPersistentEffects("glitchweaken", {{stat = "protection", amount = -5}})
  2978. status.setPersistentEffects("glitchweaken2", {{stat = "maxHealth", amount = -10}})
  2979. status.setPersistentEffects("glitchweaken3", {{stat = "maxEnergy", amount = -20}})
  2980. inWater = 1
  2981. else
  2982. isDry()
  2983. end
  2984. end
  2985.  
  2986. function uninit()
  2987. status.clearPersistentEffects("glitchweaken")
  2988. status.clearPersistentEffects("glitchweaken2")
  2989. status.clearPersistentEffects("glitchweaken3")
  2990. end{
  2991. "name" : "raceglitch",
  2992. "effectConfig" : {
  2993. "healthBonus" : 0.10,
  2994. "energyBonus" : 0.05
  2995. },
  2996. "defaultDuration" : 3,
  2997.  
  2998. "scripts" : [
  2999. "raceglitch.lua"
  3000. ]
  3001.  
  3002. }
  3003. function init()
  3004. baseValue = config.getParameter("healthBonus",0)*(status.resourceMax("health"))
  3005. effect.addStatModifierGroup({{stat = "maxHealth", amount = baseValue }})
  3006. baseValue2 = config.getParameter("energyBonus",0)*(status.resourceMax("energy"))
  3007. effect.addStatModifierGroup({{stat = "maxEnergy", amount = baseValue2 }})
  3008. self.gritBoost = config.getParameter("gritBonus",0)
  3009. effect.addStatModifierGroup({{stat = "grit", baseMultiplier = self.gritBoost }})
  3010. self.movementParams = mcontroller.baseParameters()
  3011.  
  3012. local bounds = mcontroller.boundBox()
  3013. script.setUpdateDelta(5)
  3014.  
  3015.  
  3016. self.liquidMovementParameter = {
  3017. liquidJumpProfile = {
  3018. jumpHoldTime = 0.275
  3019. }
  3020. }
  3021. end
  3022.  
  3023.  
  3024. function update(dt)
  3025. mcontroller.controlParameters(self.liquidMovementParameter)
  3026. end
  3027.  
  3028. function uninit()
  3029.  
  3030. end
  3031. {
  3032. "name" : "racehuman",
  3033. "effectConfig" : {
  3034. "healthBonus" : 0.15,
  3035. "energyBonus" : 0.15,
  3036. "gritBonus" : 0.25
  3037. },
  3038. "defaultDuration" : 3,
  3039.  
  3040. "scripts" : [
  3041. "racehuman.lua"
  3042. ]
  3043.  
  3044. }
  3045. {
  3046. "particleEmitters" : {
  3047. "shieldblock" : {
  3048. "enabled" : false,
  3049. "emissionRate" : 0.0005,
  3050. "particles" : [
  3051. {
  3052. "particle" : {
  3053. "type" : "redcartoonstar",
  3054. "size" : 0.5,
  3055. "color" : [55, 55, 55, 50],
  3056. "fade" : 0.9,
  3057. "destructionAction" : "shrink",
  3058. "destructionTime" : 0.8,
  3059. "position" : [0.0, 0.0],
  3060. "offsetRegion" : [0, 0, 0, 0],
  3061. "initialVelocity" : [0, 1],
  3062. "finalVelocity" : [0, 1],
  3063. "approach" : [0, 10],
  3064. "timeToLive" : 0.01,
  3065. "variance" : {
  3066. }
  3067. }
  3068. }
  3069. ]
  3070. },
  3071. "statustext" : {
  3072. "enabled" : false,
  3073. "emissionRate" : 0.0,
  3074. "particles" : [
  3075. {
  3076. "particle" : {
  3077. "type" : "text",
  3078. "text" : "hylotl",
  3079. "size" : 0.75,
  3080. "color" : [70, 55, 250, 230],
  3081. "fade" : 1,
  3082. "destructionAction" : "shrink",
  3083. "destructionTime" : 0.8,
  3084. "position" : [0.0, 0.0],
  3085. "offsetRegion" : [0, 0, 0, 0],
  3086. "initialVelocity" : [0, 4],
  3087. "finalVelocity" : [0, 1],
  3088. "approach" : [0, 10],
  3089. "timeToLive" : 0,
  3090. "variance" : {
  3091. }
  3092. }
  3093. }
  3094. ]
  3095. }
  3096. }
  3097. }
  3098. require("/scripts/vec2.lua")
  3099. function init()
  3100. inWater=0
  3101. baseValue = config.getParameter("healthBonus",0)*(status.resourceMax("health"))
  3102. effect.addStatModifierGroup({{stat = "maxHealth", amount = baseValue }})
  3103. baseValue2 = config.getParameter("energyBonus",0)*(status.resourceMax("energy"))
  3104. effect.addStatModifierGroup({{stat = "maxEnergy", amount = baseValue2 }})
  3105.  
  3106. effect.addStatModifierGroup({{stat = "maxBreath", amount = 1500}})
  3107. effect.addStatModifierGroup({{stat = "breathRegenerationRate", amount = 60}})
  3108. effect.addStatModifierGroup({{stat = "wetImmunity", amount = 1}})
  3109. script.setUpdateDelta(5)
  3110.  
  3111. end
  3112.  
  3113. function isDry()
  3114. local mouthPosition = vec2.add(mcontroller.position(), status.statusProperty("mouthPosition"))
  3115. if not world.liquidAt(mouthPosition) then
  3116. status.clearPersistentEffects("hylotlprotection")
  3117. status.clearPersistentEffects("hylotlprotection2")
  3118. status.clearPersistentEffects("hylotlprotection3")
  3119. status.clearPersistentEffects("hylotlprotection4")
  3120. inWater = 0
  3121. end
  3122. end
  3123.  
  3124. function update(dt)
  3125. local mouthPosition = vec2.add(mcontroller.position(), status.statusProperty("mouthPosition"))
  3126.  
  3127. local mouthful = world.liquidAt(mouthposition)
  3128. local summationForDebug = ""
  3129.  
  3130. if mouthful then
  3131. summationForDebug = "Liq:" .. mouthful .. "/" .. inWater
  3132. else
  3133. summationForDebug = "Liq:nil/" .. inWater
  3134. end
  3135. world.debugText(summationForDebug,{mouthPosition[1]-(string.len(summationForDebug)*0.25),mouthPosition[2]},"red")
  3136.  
  3137. if world.liquidAt(mouthPosition) and inWater == 0 then
  3138. status.setPersistentEffects("hylotlprotection", {{stat = "protection", amount = 9}})
  3139. status.setPersistentEffects("hylotlprotection2", {{stat = "perfectBlockLimit", amount = 2}})
  3140. status.setPersistentEffects("hylotlprotection3", {{stat = "maxHealth", amount = 20}})
  3141. status.setPersistentEffects("hylotlprotection4", {{stat = "fallDamageMultiplier", amount = 0.0}})
  3142. inWater = 1
  3143.  
  3144.  
  3145. else
  3146. isDry()
  3147. end
  3148. end
  3149.  
  3150. function uninit()
  3151. status.clearPersistentEffects("hylotlprotection")
  3152. status.clearPersistentEffects("hylotlprotection2")
  3153. status.clearPersistentEffects("hylotlprotection3")
  3154. status.clearPersistentEffects("hylotlprotection4")
  3155. end{
  3156. "name" : "racehylotl",
  3157. "effectConfig" : {
  3158. "healthBonus" : 0.10,
  3159. "energyBonus" : -0.20
  3160. },
  3161. "defaultDuration" : 3,
  3162.  
  3163. "scripts" : [
  3164. "racehylotl.lua"
  3165. ]
  3166.  
  3167. }
  3168. require("/scripts/vec2.lua")
  3169. function init()
  3170. inWater=0
  3171. effect.addStatModifierGroup({{stat = "wetImmunity", amount = 1}})
  3172. effect.addStatModifierGroup({{stat = "foodDelta", amount = -0.049}})
  3173. script.setUpdateDelta(5)
  3174. end
  3175.  
  3176. function isDry()
  3177. local mouthPosition = vec2.add(mcontroller.position(), status.statusProperty("mouthPosition"))
  3178. if not world.liquidAt(mouthPosition) then
  3179. status.clearPersistentEffects("hylotlprotection")
  3180. status.clearPersistentEffects("hylotlprotection2")
  3181. status.clearPersistentEffects("hylotlprotection3")
  3182. status.clearPersistentEffects("hylotlprotection4")
  3183. inWater = 0
  3184. end
  3185. end
  3186.  
  3187. function update(dt)
  3188. local mouthPosition = vec2.add(mcontroller.position(), status.statusProperty("mouthPosition"))
  3189. if world.liquidAt(mouthPosition) and inWater == 0 then
  3190. status.setPersistentEffects("hylotlprotection", {{stat = "foodDelta", amount = -0.025}})
  3191. status.setPersistentEffects("hylotlprotection2", {{stat = "energyRegenBlockTime", amount = 1.2}})
  3192. status.setPersistentEffects("hylotlprotection3", {{stat = "maxEnergy", amount = 12}})
  3193. status.setPersistentEffects("hylotlprotection4", {{stat = "breathDepletionRate", amount = 1.5}})
  3194. inWater = 1
  3195. else
  3196. isDry()
  3197. end
  3198. end
  3199.  
  3200. function uninit()
  3201.  
  3202. end{
  3203. "name" : "raceinkling",
  3204. "effectConfig" : {
  3205. "healthBonus" : 0.25
  3206. },
  3207.  
  3208. "defaultDuration" : 3,
  3209.  
  3210. "scripts" : [
  3211. "raceinkling.lua"
  3212. ]
  3213.  
  3214. }
  3215. function init()
  3216. effect.addStatModifierGroup({{stat = "shieldRegen", amount = 2}})
  3217. effect.addStatModifierGroup({{stat = "perfectBlockLimitRegen", amount = 1}})
  3218. effect.addStatModifierGroup({{stat = "foodDelta", amount = -0.062}})
  3219. local bounds = mcontroller.boundBox()
  3220. script.setUpdateDelta(10)
  3221.  
  3222. end
  3223.  
  3224. function update(dt)
  3225. mcontroller.controlModifiers({
  3226. speedModifier = 1.10,
  3227. airJumpModifier = 1.10
  3228. })
  3229. end
  3230.  
  3231. function uninit()
  3232.  
  3233. end{
  3234. "name" : "racekemono",
  3235. "effectConfig" : {
  3236. "powerModifier" : 1.08,
  3237. "healthDown" : 3
  3238. },
  3239. "defaultDuration" : 3,
  3240.  
  3241. "scripts" : [
  3242. "racekemono.lua"
  3243. ]
  3244.  
  3245. }
  3246. function init()
  3247. effect.addStatModifierGroup({{stat = "maxEnergy", amount = 40}})
  3248. local bounds = mcontroller.boundBox()
  3249. script.setUpdateDelta(10)
  3250.  
  3251. end
  3252.  
  3253. function update(dt)
  3254. mcontroller.controlModifiers({
  3255. speedModifier = 1.05,
  3256. airJumpModifier = 1.05
  3257. })
  3258. end
  3259.  
  3260. function uninit()
  3261.  
  3262. end{
  3263. "name" : "racekineptic",
  3264. "effectConfig" : {
  3265. "powerModifier" : 1.08,
  3266. "healthDown" : 3
  3267. },
  3268. "defaultDuration" : 3,
  3269.  
  3270. "scripts" : [
  3271. "racekineptic.lua"
  3272. ]
  3273.  
  3274. }
  3275. function init()
  3276. effect.addStatModifierGroup({{stat = "maxHealth", amount = 20}})
  3277. effect.addStatModifierGroup({{stat = "energyRegenPercentageRate", amount = 0.530}})
  3278. effect.addStatModifierGroup({{stat = "fallDamageMultiplier", effectiveMultiplier = 0.50}})
  3279. local bounds = mcontroller.boundBox()
  3280. script.setUpdateDelta(10)
  3281. end
  3282.  
  3283. function update(dt)
  3284. mcontroller.controlModifiers({
  3285. speedModifier = 1.05,
  3286. airJumpModifier = 1.10
  3287. })
  3288. end
  3289.  
  3290. function uninit()
  3291.  
  3292. end{
  3293. "name" : "raceneko",
  3294. "effectConfig" : {},
  3295.  
  3296. "defaultDuration" : 3,
  3297.  
  3298. "scripts" : [
  3299. "raceneko.lua"
  3300. ]
  3301.  
  3302. }
  3303. function init()
  3304. baseValue = config.getParameter("healthBonus",0)*(status.resourceMax("health"))
  3305. effect.addStatModifierGroup({{stat = "maxHealth", amount = baseValue }})
  3306. baseValue2 = config.getParameter("energyBonus",0)*(status.resourceMax("energy"))
  3307. effect.addStatModifierGroup({{stat = "maxEnergy", amount = baseValue2 }})
  3308. self.gritBoost = config.getParameter("gritBonus",0)
  3309. effect.addStatModifierGroup({{stat = "grit", baseMultiplier = self.gritBoost }})
  3310.  
  3311. local bounds = mcontroller.boundBox()
  3312. effect.addStatModifierGroup({{stat = "biomeradiationImmunity", amount = 1}})
  3313. effect.addStatModifierGroup({{stat = "ffextremeradiationImmunity", amount = 1}})
  3314. effect.addStatModifierGroup({{stat = "fireStatusImmunity", amount = 1}})
  3315. script.setUpdateDelta(5)
  3316. end
  3317.  
  3318. function update(dt)
  3319. mcontroller.controlModifiers({
  3320. speedModifier = 1.085
  3321. })
  3322. end
  3323.  
  3324. function uninit()
  3325.  
  3326. end{
  3327. "name" : "racenovakid",
  3328. "effectConfig" : {
  3329. "healthBonus" : -0.10,
  3330. "energyBonus" : 0.40,
  3331. "gritBonus" : 0.60
  3332. },
  3333. "defaultDuration" : 3,
  3334.  
  3335. "scripts" : [
  3336. "racenovakid.lua"
  3337. ]
  3338.  
  3339. }
  3340. require("/scripts/vec2.lua")
  3341. function init()
  3342. inWater=0
  3343. effect.addStatModifierGroup({{stat = "maxHealth", amount = 40}})
  3344. effect.addStatModifierGroup({{stat = "waterbreathProtection", amount = 1}})
  3345. effect.addStatModifierGroup({{stat = "wetImmunity", amount = 1}})
  3346. script.setUpdateDelta(5)
  3347. end
  3348.  
  3349. function isDry()
  3350. local mouthPosition = vec2.add(mcontroller.position(), status.statusProperty("mouthPosition"))
  3351. if not world.liquidAt(mouthPosition) then
  3352. status.removeEphemeralEffect("regenerationminor",math.huge)
  3353. status.clearPersistentEffects("orcanaprotection")
  3354. status.clearPersistentEffects("orcanaprotection2")
  3355. status.clearPersistentEffects("orcanaprotection3")
  3356. status.clearPersistentEffects("orcanaprotection4")
  3357. inWater = 0
  3358. end
  3359. end
  3360.  
  3361. function update(dt)
  3362. local mouthPosition = vec2.add(mcontroller.position(), status.statusProperty("mouthPosition"))
  3363. if world.liquidAt(mouthPosition) and inWater == 0 then
  3364. status.addEphemeralEffect("regenerationminor",math.huge)
  3365. status.setPersistentEffects("orcanaprotection2", {{stat = "foodDelta", amount = -0.03}})
  3366. status.setPersistentEffects("orcanaprotection4", {{stat = "fallDamageMultiplier", amount = 0.0}})
  3367. inWater = 1
  3368. else
  3369. isDry()
  3370. end
  3371. end
  3372.  
  3373. function uninit()
  3374. status.clearPersistentEffects("orcanaprotection")
  3375. status.clearPersistentEffects("orcanaprotection2")
  3376. status.clearPersistentEffects("orcanaprotection3")
  3377. status.clearPersistentEffects("orcanaprotection4")
  3378. end
  3379. {
  3380. "name" : "raceorcana",
  3381. "effectConfig" : {},
  3382. "defaultDuration" : 3,
  3383.  
  3384. "scripts" : [
  3385. "raceorcana.lua"
  3386. ]
  3387.  
  3388. }
  3389. function init()
  3390. effect.addStatModifierGroup({{stat = "liquidnitrogenImmunity", amount = 1}})
  3391. effect.addStatModifierGroup({{stat = "biomecoldImmunity", amount = 1}})
  3392. effect.addStatModifierGroup({{stat = "iceslipImmunity", amount = 1}})
  3393. effect.addStatModifierGroup({{stat = "maxEnergy", amount = 20}})
  3394. effect.addStatModifierGroup({{stat = "iceStatusImmunity", amount = 1}})
  3395. script.setUpdateDelta(0)
  3396. end
  3397.  
  3398. function update(dt)
  3399.  
  3400. end
  3401.  
  3402. function uninit()
  3403.  
  3404. end{
  3405. "name" : "racepeglaci",
  3406. "effectConfig" : {},
  3407. "defaultDuration" : 3,
  3408.  
  3409. "scripts" : [
  3410. "racepeglaci.lua"
  3411. ]
  3412.  
  3413. }
  3414. function init()
  3415. effect.addStatModifierGroup({{stat = "honeyslowImmunity", amount = 1}})
  3416. effect.addStatModifierGroup({{stat = "grit", amount = 0.3}})
  3417. effect.addStatModifierGroup({{stat = "beestingImmunity", amount = 1}})
  3418. local bounds = mcontroller.boundBox()
  3419. script.setUpdateDelta(10)
  3420. end
  3421.  
  3422. function update(dt)
  3423. mcontroller.controlModifiers({
  3424. speedModifier = 1.25
  3425. })
  3426. end
  3427.  
  3428. function uninit()
  3429.  
  3430. end{
  3431. "name" : "raceponex",
  3432. "effectConfig" : {},
  3433. "defaultDuration" : 3,
  3434.  
  3435. "scripts" : [
  3436. "raceponex.lua"
  3437. ]
  3438.  
  3439. }
  3440. function init()
  3441. effect.addStatModifierGroup({{stat = "grit", amount = 0.5}})
  3442. effect.addStatModifierGroup({{stat = "energyRegenBlockTime", amount = 1.25}})
  3443. local bounds = mcontroller.boundBox()
  3444. script.setUpdateDelta(10)
  3445. end
  3446.  
  3447. function update(dt)
  3448. mcontroller.controlModifiers({
  3449. speedModifier = 1.02,
  3450. airJumpModifier = 1.04
  3451. })
  3452. end
  3453.  
  3454. function uninit()
  3455.  
  3456. end{
  3457. "name" : "racesergal",
  3458. "effectConfig" : {
  3459.  
  3460. },
  3461.  
  3462. "defaultDuration" : 3,
  3463.  
  3464. "scripts" : [
  3465. "racesergal.lua"
  3466. ]
  3467.  
  3468. }
  3469. function init()
  3470. effect.addStatModifierGroup({{stat = "beestingImmunity", amount = 1}})
  3471. effect.addStatModifierGroup({{stat = "honeyslowImmunity", amount = 1}})
  3472. effect.addStatModifierGroup({{stat = "fallDamageMultiplier", effectiveMultiplier = 0.20}})
  3473. local bounds = mcontroller.boundBox()
  3474. script.setUpdateDelta(10)
  3475. end
  3476.  
  3477. function update(dt)
  3478. mcontroller.controlModifiers({
  3479. speedModifier = 1.08,
  3480. stickyForce = 0.35,
  3481. airForce = 35.0,
  3482. liquidForce = 20.0
  3483. })
  3484. end
  3485.  
  3486. function uninit()
  3487.  
  3488. end{
  3489. "name" : "racevespoid",
  3490. "effectConfig" : {
  3491.  
  3492. },
  3493.  
  3494. "defaultDuration" : 3,
  3495.  
  3496. "scripts" : [
  3497. "racevespoid.lua"
  3498. ]
  3499.  
  3500. }
  3501. function init()
  3502. effect.addStatModifierGroup({{stat = "shieldStaminaRegen", amount = 0.4}})
  3503. effect.addStatModifierGroup({{stat = "foodDelta", amount = -0.04}})
  3504. effect.addStatModifierGroup({{stat = "slimestickImmunity", amount = 1}})
  3505. effect.addStatModifierGroup({{stat = "slimefrictionImmunity", amount = 1}})
  3506. local bounds = mcontroller.boundBox()
  3507. script.setUpdateDelta(10)
  3508. end
  3509.  
  3510. function update(dt)
  3511. mcontroller.controlModifiers({
  3512. speedModifier = 1.12
  3513. })
  3514. end
  3515.  
  3516. function uninit()
  3517.  
  3518. end{
  3519. "name" : "raceviera",
  3520. "effectConfig" : {},
  3521. "defaultDuration" : 3,
  3522.  
  3523. "scripts" : [
  3524. "raceviera.lua"
  3525. ]
  3526.  
  3527. }
  3528. function init()
  3529. effect.addStatModifierGroup({{stat = "grit", amount = 0.4 }})
  3530. effect.addStatModifierGroup({{stat = "jungleslowImmunity", amount = 1 }})
  3531. baseValue = config.getParameter("healthBonus",0)*(status.resourceMax("health"))
  3532. effect.addStatModifierGroup({{stat = "maxEnergy", amount = baseValue }})
  3533.  
  3534.  
  3535. local bounds = mcontroller.boundBox()
  3536. script.setUpdateDelta(10)
  3537.  
  3538. end
  3539.  
  3540. function update(dt)
  3541. mcontroller.controlModifiers({
  3542. speedModifier = 1.14
  3543. })
  3544. end
  3545.  
  3546. function uninit()
  3547.  
  3548. end{
  3549. "name" : "racevulpes",
  3550. "effectConfig" : {
  3551. "healthBonus" : 0.12
  3552. },
  3553.  
  3554. "defaultDuration" : 3,
  3555.  
  3556. "scripts" : [
  3557. "racevulpes.lua"
  3558. ]
  3559.  
  3560. }
  3561. function init()
  3562. local bounds = mcontroller.boundBox()
  3563. animator.setParticleEmitterOffsetRegion("jumpparticles", {bounds[1], bounds[2] + 0.2, bounds[3], bounds[2] + 0.3})
  3564. end
  3565.  
  3566. function update(dt)
  3567. animator.setParticleEmitterActive("jumpparticles", config.getParameter("particles", true) and mcontroller.jumping())
  3568. mcontroller.controlModifiers({
  3569. airJumpModifier = 1.35
  3570. })
  3571. end
  3572.  
  3573. function uninit()
  3574.  
  3575. end
  3576. {
  3577. "name" : "jumpboost35",
  3578. "effectConfig" : {},
  3579. "defaultDuration" : 1,
  3580.  
  3581. "scripts" : [
  3582. "jumpboost35.lua"
  3583. ],
  3584.  
  3585. "animationConfig" : "jumpboost.animation",
  3586.  
  3587. "label" : "Jump Boost",
  3588. "icon" : "/interface/statuses/jumpboost.png"
  3589. }
  3590. {
  3591. "particleEmitters" : {
  3592. "embers" : {
  3593. "enabled" : false,
  3594. "emissionRate" : 0.0005,
  3595. "particles" : [
  3596. {
  3597. "particle" : {
  3598. "type" : "ember",
  3599. "size" : 0.5,
  3600. "color" : [55, 55, 55, 50],
  3601. "fade" : 0.9,
  3602. "destructionAction" : "shrink",
  3603. "destructionTime" : 0.8,
  3604. "position" : [0.0, 0.0],
  3605. "offsetRegion" : [0, 0, 0, 0],
  3606. "initialVelocity" : [0, 1],
  3607. "finalVelocity" : [0, 1],
  3608. "approach" : [0, 10],
  3609. "timeToLive" : 0.01,
  3610. "variance" : {
  3611. }
  3612. }
  3613. }
  3614. ]
  3615. },
  3616. "statustext" : {
  3617. "enabled" : false,
  3618. "emissionRate" : 0.0,
  3619. "particles" : [
  3620. {
  3621. "particle" : {
  3622. "type" : "text",
  3623. "text" : "avian",
  3624. "size" : 0.75,
  3625. "color" : [150, 220, 220, 230],
  3626. "fade" : 1,
  3627. "destructionAction" : "shrink",
  3628. "destructionTime" : 0.8,
  3629. "position" : [0.0, 0.0],
  3630. "offsetRegion" : [0, 0, 0, 0],
  3631. "initialVelocity" : [0, 4],
  3632. "finalVelocity" : [0, 1],
  3633. "approach" : [0, 10],
  3634. "timeToLive" : 0,
  3635. "variance" : {
  3636. }
  3637. }
  3638. }
  3639. ]
  3640. }
  3641. }
  3642. }
  3643.  
  3644. function init()
  3645. effect.addStatModifierGroup({ {stat = "gravrainImmunity", amount = 1} })
  3646. local bounds = mcontroller.boundBox()
  3647. self.powerModifier = config.getParameter("powerModifier", 0)
  3648. effect.addStatModifierGroup({{stat = "powerMultiplier", baseMultiplier = self.powerModifier}})
  3649. end
  3650.  
  3651. function update()
  3652.  
  3653. self.newGravityMultiplier = status.resource("customGravity")
  3654. mcontroller.controlParameters({
  3655. gravityMultiplier = config.getParameter("gravityModifier") * self.newGravityMultiplier
  3656. })
  3657. end
  3658.  
  3659. function unit()
  3660.  
  3661. end
  3662. {
  3663. "name" : "lowgravavian",
  3664. "effectConfig" : {
  3665. "gravityModifier" : 0.9
  3666. },
  3667. "defaultDuration" : 15,
  3668.  
  3669. "scripts" : [
  3670. "lowgrav.lua"
  3671. ],
  3672.  
  3673. "animationConfig" : "lowgravavian.animation"
  3674. }
  3675. {
  3676. "name" : "maxenergyboostfloran",
  3677. "effectConfig" : {
  3678. "energyAmount" : 20
  3679. },
  3680. "defaultDuration" : 5,
  3681.  
  3682. "scripts" : [ "maxenergyboost.lua"]
  3683. }
  3684. {
  3685. "particleEmitters" : {
  3686. "shadowgaseffect" : {
  3687. "enabled" : true,
  3688. "emissionRate" : 11.0,
  3689. "particles" : [
  3690. {
  3691. "particle" : {
  3692. "type" : "ember",
  3693. "size" : 1.5,
  3694. "color" : [45, 45, 220, 230],
  3695. "fade" : 0.9,
  3696. "destructionAction" : "shrink",
  3697. "destructionTime" : 0.8,
  3698. "position" : [0.0, 0.0],
  3699. "offsetRegion" : [0, 0, 0, 0],
  3700. "initialVelocity" : [0, 1],
  3701. "finalVelocity" : [0, 1],
  3702. "approach" : [0, 10],
  3703. "timeToLive" : 0.3,
  3704. "variance" : {}
  3705. }
  3706. }
  3707. ]
  3708. },
  3709. "statustext" : {
  3710. "enabled" : true,
  3711. "emissionRate" : 1.0,
  3712. "particles" : [
  3713. {
  3714. "particle" : {
  3715. "type" : "text",
  3716. "text" : "Shadow Gas!",
  3717. "size" : 0.75,
  3718. "color" : [150, 150, 150, 230],
  3719. "fade" : 1,
  3720. "destructionAction" : "shrink",
  3721. "destructionTime" : 0.8,
  3722. "position" : [0.0, 0.0],
  3723. "offsetRegion" : [0, 0, 0, 0],
  3724. "initialVelocity" : [0, 4],
  3725. "finalVelocity" : [0, 1],
  3726. "approach" : [0, 10],
  3727. "timeToLive" : 1,
  3728. "variance" : {}
  3729. }
  3730. }
  3731. ]
  3732. }
  3733. }
  3734. }
  3735. function init()
  3736. local bounds = mcontroller.boundBox()
  3737. script.setUpdateDelta(5)
  3738.  
  3739.  
  3740. self.liquidMovementParameter = {
  3741. airForce = 35,
  3742. liquidBuoyancy = 0.725,
  3743. airJumpProfile = {
  3744. jumpSpeed = 36.0
  3745. }
  3746. }
  3747. end
  3748.  
  3749.  
  3750. function update(dt)
  3751. mcontroller.controlParameters(self.liquidMovementParameter)
  3752.  
  3753.  
  3754. end
  3755.  
  3756. function uninit()
  3757.  
  3758. end{
  3759. "name" : "raceavianmovement",
  3760.  
  3761. "effectConfig" : {},
  3762. "defaultDuration" : 1,
  3763.  
  3764. "scripts" : [
  3765. "raceavianmovement.lua"
  3766. ],
  3767.  
  3768. "animationConfig" : "raceavianmovement.animation"
  3769. }
  3770. function init()
  3771. effect.addStatModifierGroup({{stat = "foodDelta", amount = -0.03}})
  3772. effect.addStatModifierGroup({{stat = "fallDamageMultiplier", amount = 1.15}})
  3773. effect.addStatModifierGroup({{stat = "energyRegenBlockTime", amount = 1.6}})
  3774. effect.addStatModifierGroup({{stat = "energyRegenPercentageRate", amount = 0.05}})
  3775. script.setUpdateDelta(5)
  3776. end
  3777.  
  3778. function update(dt)
  3779.  
  3780. end
  3781.  
  3782.  
  3783. function uninit()
  3784.  
  3785. end{
  3786. "name" : "attrition",
  3787. "effectConfig" : {},
  3788. "defaultDuration" : 1,
  3789.  
  3790. "scripts" : [
  3791. "attrition.lua"
  3792. ]
  3793. }
  3794. function init()
  3795. local bounds = mcontroller.boundBox()
  3796. script.setUpdateDelta(5)
  3797. self.healthRatio = 1
  3798. end
  3799.  
  3800. function update(dt)
  3801.  
  3802. if status.statPositive("maxHealth") then
  3803. self.healthRatio = status.resource("health") / status.stat("maxHealth")
  3804. else
  3805. self.healthRatio = 0
  3806. end
  3807.  
  3808.  
  3809. if self.healthRatio < 0.2 then
  3810. status.setPersistentEffects("healthpower", {{stat = "powerMultiplier", baseMultiplier = 1.25}})
  3811. elseif self.healthRatio < 0.3 then
  3812. status.setPersistentEffects("healthpower", {{stat = "powerMultiplier", baseMultiplier = 1.20}})
  3813. elseif self.healthRatio < 0.4 then
  3814. status.setPersistentEffects("healthpower", {{stat = "powerMultiplier", baseMultiplier = 1.17}})
  3815. elseif self.healthRatio < 0.5 then
  3816. status.setPersistentEffects("healthpower", {{stat = "powerMultiplier", baseMultiplier = 1.14}})
  3817. elseif self.healthRatio < 0.6 then
  3818. status.setPersistentEffects("healthpower", {{stat = "powerMultiplier", baseMultiplier = 1.10}})
  3819. elseif self.healthRatio < 0.7 then
  3820. status.setPersistentEffects("healthpower", {{stat = "powerMultiplier", baseMultiplier = 1.07}})
  3821. elseif self.healthRatio < 0.75 then
  3822. status.setPersistentEffects("healthpower", {{stat = "powerMultiplier", baseMultiplier = 1.04}})
  3823. else
  3824. status.clearPersistentEffects("healthpower")
  3825. end
  3826.  
  3827. end
  3828.  
  3829. function uninit()
  3830. status.clearPersistentEffects("healthpower")
  3831. end
  3832.  
  3833.  
  3834.  
  3835.  
  3836.  
  3837. {
  3838. "name" : "hpedge",
  3839. "effectConfig" : {},
  3840. "defaultDuration" : 3,
  3841.  
  3842. "scripts" : [
  3843. "hpedge.lua"
  3844. ]
  3845. }
  3846. function init()
  3847. effect.addStatModifierGroup({{stat = "foodDelta", amount = -0.062}})
  3848. local bounds = mcontroller.boundBox()
  3849. script.setUpdateDelta(10)
  3850. end
  3851.  
  3852. function update(dt)
  3853. mcontroller.controlModifiers({
  3854. speedModifier = 1.11,
  3855. airJumpModifier = 1.15
  3856. })
  3857. end
  3858.  
  3859. function uninit()
  3860.  
  3861. end{
  3862. "name" : "metabolism",
  3863. "effectConfig" : {},
  3864. "defaultDuration" : 1,
  3865.  
  3866. "scripts" : [
  3867. "metabolism.lua"
  3868. ]
  3869. }
  3870. function init()
  3871. local bounds = mcontroller.boundBox()
  3872. script.setUpdateDelta(5)
  3873. local foodvalue = status.resource("food")
  3874. end
  3875.  
  3876. function update(dt)
  3877.  
  3878. if self.foodvalue == nil then
  3879. foodvalue=1
  3880. end
  3881.  
  3882. self.foodvalue = status.resource("food")
  3883.  
  3884. if self.foodvalue < 0.3 then
  3885. status.setPersistentEffects("starvationpower", {{stat = "powerMultiplier", baseMultiplier = 1.30}})
  3886. elseif self.foodvalue < 10 then
  3887. status.setPersistentEffects("starvationpower", {{stat = "powerMultiplier", baseMultiplier = 1.25}})
  3888. elseif self.foodvalue < 20 then
  3889. status.setPersistentEffects("starvationpower", {{stat = "powerMultiplier", baseMultiplier = 1.20}})
  3890. elseif self.foodvalue < 30 then
  3891. status.setPersistentEffects("starvationpower", {{stat = "powerMultiplier", baseMultiplier = 1.16}})
  3892. elseif self.foodvalue < 40 then
  3893. status.setPersistentEffects("starvationpower", {{stat = "powerMultiplier", baseMultiplier = 1.12}})
  3894. elseif self.foodvalue < 50 then
  3895. status.setPersistentEffects("starvationpower", {{stat = "powerMultiplier", baseMultiplier = 1.07}})
  3896. elseif self.foodvalue < 60 then
  3897. status.setPersistentEffects("starvationpower", {{stat = "powerMultiplier", baseMultiplier = 1.03}})
  3898. else
  3899. status.setPersistentEffects("starvationpower", {{stat = "powerMultiplier", baseMultiplier = 1.00}})
  3900. status.clearPersistentEffects("starvationpower")
  3901. end
  3902.  
  3903. end
  3904.  
  3905. function uninit()
  3906.  
  3907. end
  3908.  
  3909.  
  3910.  
  3911.  
  3912. {
  3913. "name" : "starvingedge",
  3914. "effectConfig" : {},
  3915. "defaultDuration" : 3,
  3916.  
  3917. "scripts" : [
  3918. "starvingedge.lua"
  3919. ]
  3920. }
  3921. {
  3922. "particleEmitters" : {
  3923. "blood" : {
  3924. "enabled" : true,
  3925. "emissionRate" : 2.0,
  3926. "particles" : [
  3927. {
  3928. "particle" : {
  3929. "type" : "animated",
  3930. "mode" : "LoopForever",
  3931. "animation" : "/animations/statuseffects/heal/darkheal.animation",
  3932. "size" : 1.0,
  3933. "color" : [30, 250, 30, 230],
  3934. "fade" : 0.9,
  3935. "position" : [0.0, 0.0],
  3936. "offsetRegion" : [0, 0, 0, 0],
  3937. "initialVelocity" : [0, 1.0],
  3938. "finalVelocity" : [0, 5.0],
  3939. "approach" : [0, 10],
  3940. "timeToLive" : 0.6,
  3941. "variance" : {
  3942. "initialVelocity" : [0.5, 1.0]
  3943. }
  3944. }
  3945. }
  3946. ]
  3947. },
  3948. "blood2" : {
  3949. "enabled" : true,
  3950. "emissionRate" : 2.0,
  3951. "particles" : [
  3952. {
  3953. "particle" : {
  3954. "type" : "animated",
  3955. "mode" : "LoopForever",
  3956. "animation" : "/animations/statuseffects/heal/darkheal2.animation",
  3957. "size" : 1.0,
  3958. "color" : [30, 250, 30, 230],
  3959. "fade" : 0.9,
  3960. "position" : [0.0, 0.0],
  3961. "offsetRegion" : [0, 0, 0, 0],
  3962. "initialVelocity" : [0, 1.0],
  3963. "finalVelocity" : [0, 5.0],
  3964. "approach" : [0, 10],
  3965. "timeToLive" : 0.6,
  3966. "variance" : {
  3967. "initialVelocity" : [0.5, 1.0]
  3968. }
  3969. }
  3970. }
  3971. ]
  3972. },
  3973. "statustext" : {
  3974. "enabled" : true,
  3975. "emissionRate" : 1.0,
  3976. "particles" : [
  3977. {
  3978. "particle" : {
  3979. "type" : "text",
  3980. "text" : "Darkheal",
  3981. "size" : 0.75,
  3982. "color" : [225, 25, 225, 255],
  3983. "fade" : 1,
  3984. "destructionAction" : "shrink",
  3985. "destructionTime" : 0.8,
  3986. "position" : [0.0, 0.0],
  3987. "offsetRegion" : [0, 0, 0, 0],
  3988. "initialVelocity" : [0, 4],
  3989. "finalVelocity" : [0, 1],
  3990. "approach" : [0, 10],
  3991. "timeToLive" : 1,
  3992. "variance" : {
  3993. }
  3994. }
  3995. }
  3996. ]
  3997. }
  3998.  
  3999. }
  4000. }
  4001. function init()
  4002. local bounds = mcontroller.boundBox()
  4003. self.healingRate = 1.008 / config.getParameter("healTime", 220)
  4004. script.setUpdateDelta(10)
  4005. end
  4006.  
  4007. function getLight()
  4008. local position = mcontroller.position()
  4009. position[1] = math.floor(position[1])
  4010. position[2] = math.floor(position[2])
  4011. local lightLevel = world.lightLevel(position)
  4012. lightLevel = math.floor(lightLevel * 100)
  4013. return lightLevel
  4014. end
  4015.  
  4016. function update(dt)
  4017. valueVal = 5
  4018. local lightLevel = getLight()
  4019. if lightLevel <= 1 then
  4020. self.healingRate = 1.01 / config.getParameter("healTime", 180)
  4021. status.modifyResourcePercentage("health", self.healingRate * dt)
  4022. elseif lightLevel <= 2 then
  4023. self.healingRate = 1.008 / config.getParameter("healTime", 200)
  4024. status.modifyResourcePercentage("health", self.healingRate * dt)
  4025. elseif lightLevel <= 5 then
  4026. self.healingRate = 1.007 / config.getParameter("healTime", 220)
  4027. status.modifyResourcePercentage("health", self.healingRate * dt)
  4028. elseif lightLevel <= 7 then
  4029. self.healingRate = 1.006 / config.getParameter("healTime", 240)
  4030. status.modifyResourcePercentage("health", self.healingRate * dt)
  4031. elseif lightLevel <= 12 then
  4032. self.healingRate = 1.005 / config.getParameter("healTime", 280)
  4033. status.modifyResourcePercentage("health", self.healingRate * dt)
  4034. elseif lightLevel <= 15 then
  4035. self.healingRate = 1.004 / config.getParameter("healTime", 320)
  4036. status.modifyResourcePercentage("health", self.healingRate * dt)
  4037. elseif lightLevel <= 18 then
  4038. self.healingRate = 1.003 / config.getParameter("healTime", 350)
  4039. status.modifyResourcePercentage("health", self.healingRate * dt)
  4040. elseif lightLevel <= 22 then
  4041. self.healingRate = 1.002 / config.getParameter("healTime", 380)
  4042. status.modifyResourcePercentage("health", self.healingRate * dt)
  4043. elseif lightLevel <= 25 then
  4044. self.healingRate = 1.001 / config.getParameter("healTime", 420)
  4045. status.modifyResourcePercentage("health", self.healingRate * dt)
  4046. end
  4047.  
  4048. end
  4049.  
  4050. function uninit()
  4051.  
  4052. end{
  4053. "name" : "darkregenfenerox",
  4054. "effectConfig" : {
  4055. "healTime" : 220
  4056. },
  4057. "defaultDuration" : 60,
  4058.  
  4059. "scripts" : [
  4060. "darkregenfenerox.lua"
  4061. ],
  4062.  
  4063. "animationConfig" : "darkregeneration.animation"
  4064. }
  4065. {
  4066. "particleEmitters" : {
  4067. "blood" : {
  4068. "enabled" : true,
  4069. "emissionRate" : 2.0,
  4070. "particles" : [
  4071. {
  4072. "particle" : {
  4073. "type" : "animated",
  4074. "mode" : "LoopForever",
  4075. "animation" : "/animations/statuseffects/heal/lightheal.animation",
  4076. "size" : 1.0,
  4077. "color" : [30, 250, 30, 230],
  4078. "fade" : 0.9,
  4079. "position" : [0.0, 0.0],
  4080. "offsetRegion" : [0, 0, 0, 0],
  4081. "initialVelocity" : [0, 1.0],
  4082. "finalVelocity" : [0, 5.0],
  4083. "approach" : [0, 10],
  4084. "timeToLive" : 0.6,
  4085. "variance" : {
  4086. "initialVelocity" : [0.5, 1.0]
  4087. }
  4088. }
  4089. }
  4090. ]
  4091. },
  4092.  
  4093. "statustext" : {
  4094. "enabled" : true,
  4095. "emissionRate" : 1.0,
  4096. "particles" : [
  4097. {
  4098. "particle" : {
  4099. "type" : "text",
  4100. "text" : "regen",
  4101. "size" : 0.75,
  4102. "color" : [225, 25, 225, 255],
  4103. "fade" : 1,
  4104. "destructionAction" : "shrink",
  4105. "destructionTime" : 0.8,
  4106. "position" : [0.0, 0.0],
  4107. "offsetRegion" : [0, 0, 0, 0],
  4108. "initialVelocity" : [0, 4],
  4109. "finalVelocity" : [0, 1],
  4110. "approach" : [0, 10],
  4111. "timeToLive" : 1,
  4112. "variance" : {
  4113. }
  4114. }
  4115. }
  4116. ]
  4117. }
  4118.  
  4119. }
  4120. }
  4121. function init()
  4122. local bounds = mcontroller.boundBox()
  4123. script.setUpdateDelta(5)
  4124. local foodvalue = status.resource("food")
  4125. end
  4126.  
  4127. function update(dt)
  4128.  
  4129. if self.foodvalue == nil then
  4130. foodvalue=1
  4131. end
  4132.  
  4133. self.foodvalue = status.resource("food")
  4134.  
  4135. if self.foodvalue > 50 then
  4136. self.healingRate = 1.001 / config.getParameter("healTime", 140)
  4137. status.modifyResourcePercentage("health", self.healingRate * dt)
  4138. elseif self.foodvalue > 60 then
  4139. self.healingRate = 1.002 / config.getParameter("healTime", 140)
  4140. status.modifyResourcePercentage("health", self.healingRate * dt)
  4141. elseif self.foodvalue > 70 then
  4142. self.healingRate = 1.003 / config.getParameter("healTime", 140)
  4143. status.modifyResourcePercentage("health", self.healingRate * dt)
  4144. end
  4145.  
  4146. end
  4147.  
  4148. function uninit()
  4149.  
  4150. end
  4151.  
  4152.  
  4153.  
  4154. function init()
  4155. local bounds = mcontroller.boundBox()
  4156. self.healingRate = 1.01 / config.getParameter("healTime", 320)
  4157. script.setUpdateDelta(5)
  4158. end
  4159.  
  4160. function getLight()
  4161. local position = mcontroller.position()
  4162. position[1] = math.floor(position[1])
  4163. position[2] = math.floor(position[2])
  4164. local lightLevel = world.lightLevel(position)
  4165. lightLevel = math.floor(lightLevel * 100)
  4166. return lightLevel
  4167. end
  4168.  
  4169.  
  4170. function update(dt)
  4171. local lightLevel = getLight()
  4172. if lightLevel > 95 then
  4173. self.healingRate = 1.01 / config.getParameter("healTime", 140)
  4174. status.modifyResourcePercentage("health", self.healingRate * dt)
  4175. elseif lightLevel > 90 then
  4176. self.healingRate = 1.008 / config.getParameter("healTime", 180)
  4177. status.modifyResourcePercentage("health", self.healingRate * dt)
  4178. elseif lightLevel > 80 then
  4179. self.healingRate = 1.007 / config.getParameter("healTime", 220)
  4180. status.modifyResourcePercentage("health", self.healingRate * dt)
  4181. elseif lightLevel > 70 then
  4182. self.healingRate = 1.006 / config.getParameter("healTime", 220)
  4183. status.modifyResourcePercentage("health", self.healingRate * dt)
  4184. elseif lightLevel > 65 then
  4185. self.healingRate = 1.005 / config.getParameter("healTime", 220)
  4186. status.modifyResourcePercentage("health", self.healingRate * dt)
  4187. elseif lightLevel > 55 then
  4188. self.healingRate = 1.004 / config.getParameter("healTime", 240)
  4189. status.modifyResourcePercentage("health", self.healingRate * dt)
  4190. elseif lightLevel > 45 then
  4191. self.healingRate = 1.003 / config.getParameter("healTime", 260)
  4192. status.modifyResourcePercentage("health", self.healingRate * dt)
  4193. elseif lightLevel > 35 then
  4194. self.healingRate = 1.002 / config.getParameter("healTime", 280)
  4195. status.modifyResourcePercentage("health", self.healingRate * dt)
  4196. elseif lightLevel > 25 then
  4197. self.healingRate = 1.001 / config.getParameter("healTime", 320)
  4198. status.modifyResourcePercentage("health", self.healingRate * dt)
  4199. end
  4200.  
  4201. end
  4202.  
  4203. function uninit()
  4204.  
  4205. end
  4206.  
  4207.  
  4208. {
  4209. "name" : "foodregennovakid",
  4210. "effectConfig" : {
  4211. "healTime" : 130
  4212. },
  4213. "defaultDuration" : 1,
  4214.  
  4215. "scripts" : [
  4216. "foodregen.lua"
  4217. ],
  4218.  
  4219. "animationConfig" : "foodregen.animation"
  4220. }
  4221. {
  4222. "particleEmitters" : {
  4223. "blood" : {
  4224. "enabled" : true,
  4225. "emissionRate" : 2.0,
  4226. "particles" : [
  4227. {
  4228. "particle" : {
  4229. "type" : "animated",
  4230. "mode" : "LoopForever",
  4231. "animation" : "/animations/statuseffects/heal/lightheal.animation",
  4232. "size" : 1.0,
  4233. "color" : [30, 250, 30, 230],
  4234. "fade" : 0.9,
  4235. "position" : [0.0, 0.0],
  4236. "offsetRegion" : [0, 0, 0, 0],
  4237. "initialVelocity" : [0, 1.0],
  4238. "finalVelocity" : [0, 5.0],
  4239. "approach" : [0, 10],
  4240. "timeToLive" : 0.6,
  4241. "variance" : {
  4242. "initialVelocity" : [0.5, 1.0]
  4243. }
  4244. }
  4245. }
  4246. ]
  4247. },
  4248.  
  4249. "statustext" : {
  4250. "enabled" : true,
  4251. "emissionRate" : 1.0,
  4252. "particles" : [
  4253. {
  4254. "particle" : {
  4255. "type" : "text",
  4256. "text" : "Lightheal",
  4257. "size" : 0.75,
  4258. "color" : [225, 25, 225, 255],
  4259. "fade" : 1,
  4260. "destructionAction" : "shrink",
  4261. "destructionTime" : 0.8,
  4262. "position" : [0.0, 0.0],
  4263. "offsetRegion" : [0, 0, 0, 0],
  4264. "initialVelocity" : [0, 4],
  4265. "finalVelocity" : [0, 1],
  4266. "approach" : [0, 10],
  4267. "timeToLive" : 1,
  4268. "variance" : {
  4269. }
  4270. }
  4271. }
  4272. ]
  4273. }
  4274.  
  4275. }
  4276. }
  4277. function init()
  4278. local bounds = mcontroller.boundBox()
  4279. self.healingRate = 1.01 / config.getParameter("healTime", 320)
  4280. script.setUpdateDelta(5)
  4281. end
  4282.  
  4283. function getLight()
  4284. local position = mcontroller.position()
  4285. position[1] = math.floor(position[1])
  4286. position[2] = math.floor(position[2])
  4287. local lightLevel = world.lightLevel(position)
  4288. lightLevel = math.floor(lightLevel * 100)
  4289. return lightLevel
  4290. end
  4291.  
  4292.  
  4293. function update(dt)
  4294. local lightLevel = getLight()
  4295. if lightLevel > 95 then
  4296. self.healingRate = 1.01 / config.getParameter("healTime", 140)
  4297. status.modifyResourcePercentage("health", self.healingRate * dt)
  4298. elseif lightLevel > 90 then
  4299. self.healingRate = 1.008 / config.getParameter("healTime", 180)
  4300. status.modifyResourcePercentage("health", self.healingRate * dt)
  4301. elseif lightLevel > 80 then
  4302. self.healingRate = 1.007 / config.getParameter("healTime", 220)
  4303. status.modifyResourcePercentage("health", self.healingRate * dt)
  4304. elseif lightLevel > 70 then
  4305. self.healingRate = 1.006 / config.getParameter("healTime", 220)
  4306. status.modifyResourcePercentage("health", self.healingRate * dt)
  4307. elseif lightLevel > 65 then
  4308. self.healingRate = 1.005 / config.getParameter("healTime", 220)
  4309. status.modifyResourcePercentage("health", self.healingRate * dt)
  4310. elseif lightLevel > 55 then
  4311. self.healingRate = 1.004 / config.getParameter("healTime", 240)
  4312. status.modifyResourcePercentage("health", self.healingRate * dt)
  4313. elseif lightLevel > 45 then
  4314. self.healingRate = 1.003 / config.getParameter("healTime", 260)
  4315. status.modifyResourcePercentage("health", self.healingRate * dt)
  4316. elseif lightLevel > 35 then
  4317. self.healingRate = 1.002 / config.getParameter("healTime", 280)
  4318. status.modifyResourcePercentage("health", self.healingRate * dt)
  4319. elseif lightLevel > 25 then
  4320. self.healingRate = 1.001 / config.getParameter("healTime", 320)
  4321. status.modifyResourcePercentage("health", self.healingRate * dt)
  4322. end
  4323.  
  4324. end
  4325.  
  4326. function uninit()
  4327.  
  4328. end
  4329.  
  4330. {
  4331. "name" : "lightregenfloran",
  4332. "effectConfig" : {
  4333. "healTime" : 130
  4334. },
  4335. "defaultDuration" : 1,
  4336.  
  4337. "scripts" : [
  4338. "lightregen.lua"
  4339. ],
  4340.  
  4341. "animationConfig" : "lightregen.animation"
  4342. }
  4343. function init()
  4344. animator.setParticleEmitterOffsetRegion("healing", mcontroller.boundBox())
  4345. animator.setParticleEmitterActive("healing", true)
  4346.  
  4347. script.setUpdateDelta(5)
  4348.  
  4349. self.healingRate = 1.005 / config.getParameter("healTime", 60)
  4350. end
  4351.  
  4352. function update(dt)
  4353. status.modifyResourcePercentage("health", self.healingRate * dt)
  4354. end
  4355.  
  4356. function uninit()
  4357.  
  4358. end{
  4359. "name" : "regenerationminor",
  4360. "effectConfig" : {
  4361. "healTime" : 220
  4362. },
  4363. "defaultDuration" : 15,
  4364.  
  4365. "scripts" : [
  4366. "regenerationminor.lua"
  4367. ],
  4368.  
  4369. "animationConfig" : "regeneration.animation",
  4370.  
  4371. "label" : "Regen 1",
  4372. "icon" : "/interface/statuses/heal.png"
  4373. }
  4374. {
  4375. "particleEmitters" : {
  4376. "bubbles" : {
  4377. "enabled" : true,
  4378. "emissionRate" : 20.0,
  4379. "particles" : [
  4380. {
  4381. "particle" : {
  4382. "type" : "textured",
  4383. "image" : "/projectiles/npcs/bubble/bubbles.png:0",
  4384. "size" : 0.7,
  4385. "fade" : 0.9,
  4386. "position" : [0.0, 0.0],
  4387. "offsetRegion" : [0, 0, 0, 0],
  4388. "initialVelocity" : [0, 1],
  4389. "finalVelocity" : [0, 3],
  4390. "timeToLive" : 2,
  4391. "underwaterOnly" : true,
  4392. "layer" : "back",
  4393. "variance" : {
  4394. "size" : 0.3,
  4395. "initialVelocity" : [0.5, 0.5]
  4396. }
  4397. }
  4398. }
  4399. ]
  4400. }
  4401. }
  4402. }
  4403. function init()
  4404. local bounds = mcontroller.boundBox()
  4405. animator.setParticleEmitterOffsetRegion("bubbles", mcontroller.boundBox())
  4406. animator.setParticleEmitterActive("bubbles", true)
  4407. self.mouthPosition = status.statusProperty("mouthPosition") or {0,0}
  4408. self.mouthBounds = {self.mouthPosition[1], self.mouthPosition[2], self.mouthPosition[1], self.mouthPosition[2]}
  4409. self.boostAmount = config.getParameter("boostAmount", 0)
  4410. self.riseAmount = config.getParameter("riseAmount", 0)
  4411. end
  4412.  
  4413. function update(dt)
  4414.  
  4415. mcontroller.controlParameters(self.liquidMovementParameter)
  4416. local position = mcontroller.position()
  4417. local worldMouthPosition = {
  4418. self.mouthPosition[1] + position[1],
  4419. self.mouthPosition[2] + position[2]
  4420. }
  4421.  
  4422. local liquidAtMouth = world.liquidAt(worldMouthPosition)
  4423. if liquidAtMouth and (liquidAtMouth[1] == 1 or liquidAtMouth[1] == 2) then
  4424. mcontroller.controlModifiers({
  4425. speedModifier = self.boostAmount,
  4426. liquidJumpModifier = self.riseAmount,
  4427. liquidForce = 150
  4428. })
  4429. animator.setParticleEmitterActive("bubbles", mcontroller.running())
  4430. else
  4431.  
  4432. animator.setParticleEmitterActive("bubbles", false)
  4433. end
  4434. end
  4435.  
  4436. function uninit()
  4437. -- status.removeEphemeralEffect("liquidimmunity")
  4438. end{
  4439. "name" : "swimboost1",
  4440. "effectConfig" : {
  4441. "boostAmount" : 1,
  4442. "riseAmount" : 1.2
  4443. },
  4444. "defaultDuration" : 60,
  4445.  
  4446. "scripts" : [
  4447. "swimboost1.lua"
  4448. ],
  4449.  
  4450. "animationConfig" : "swimboost1.animation",
  4451.  
  4452. "label" : "Swim +",
  4453. "icon" : "/interface/statuses/wet.png"
  4454. }
  4455. {
  4456. "name" : "swimboost2",
  4457. "effectConfig" : {
  4458. "boostAmount" : 2,
  4459. "riseAmount" : 1.5
  4460. },
  4461. "defaultDuration" : 60,
  4462.  
  4463. "scripts" : [
  4464. "swimboost1.lua"
  4465. ],
  4466.  
  4467. "animationConfig" : "swimboost1.animation",
  4468.  
  4469. "label" : "Swim +",
  4470. "icon" : "/interface/statuses/wet.png"
  4471. }
  4472. {
  4473. "name" : "swimboost3",
  4474. "effectConfig" : {
  4475. "boostAmount" : 3,
  4476. "riseAmount" : 2
  4477. },
  4478. "defaultDuration" : 60,
  4479.  
  4480. "scripts" : [
  4481. "swimboost1.lua"
  4482. ],
  4483.  
  4484. "animationConfig" : "swimboost1.animation",
  4485.  
  4486. "label" : "Swim +",
  4487. "icon" : "/interface/statuses/wet.png"
  4488. }
  4489. {
  4490. "name" : "swimboost4",
  4491. "effectConfig" : {
  4492. "boostAmount" : 4,
  4493. "riseAmount" : 2.4
  4494. },
  4495. "defaultDuration" : 60,
  4496.  
  4497. "scripts" : [
  4498. "swimboost1.lua"
  4499. ],
  4500.  
  4501. "animationConfig" : "swimboost1.animation",
  4502.  
  4503. "label" : "Swim +",
  4504. "icon" : "/interface/statuses/wet.png"
  4505. }
  4506. {
  4507. "name" : "swimboosthylotl1",
  4508. "effectConfig" : {
  4509.  
  4510. },
  4511. "defaultDuration" : 5,
  4512.  
  4513. "scripts" : [
  4514. "swimboost.lua"
  4515. ]
  4516. }
  4517. {
  4518. "name" : "swimboostorcana1",
  4519. "effectConfig" : {
  4520.  
  4521. },
  4522. "defaultDuration" : 5,
  4523.  
  4524. "scripts" : [
  4525. "swimboost.lua"
  4526. ]
  4527. }
  4528. INDEX version1.0 friendlyNameFrackin' Raceslink'steam://url/CommunityFilePage/729492334steamContentId 729492334 description¶Q*Disclaimer: Adding this mod to a character is a permanent choice, and will affect any characters created while it is installed.*
  4529.  
  4530. Used in tandem with FrackinUniverse, this mod adds species-specific powers to both vanilla and player-made races.
  4531.  
  4532. *Should now function without FrackinUniverse, but you'll have useless immunities in some cases. It should still be playable*
  4533.  
  4534. *Does not add races*
  4535.  
  4536.  
  4537. Racial Abilities
  4538.  
  4539. -----------------------
  4540.  
  4541. 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.
  4542.  
  4543.  
  4544. HUMAN:
  4545. --------------------
  4546. Max Health + 15%
  4547. Max Energy +15%
  4548. 25% Knockback Resistance
  4549. Max Food + 30 (total 100, from vanilla 70)
  4550. Jump Hold Time +0.02s
  4551. Perfect Blocks increase Defense. Failing a block restores defense to normal.
  4552.  
  4553.  
  4554.  
  4555. AVIAN:
  4556. ------------
  4557. 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.
  4558.  
  4559. Avian Rage: 8% base damage increase, with additional increases as you take more damage (maximum +33%).
  4560. HP -15%
  4561. Energy +10%
  4562. Jump Speed increase
  4563. 65% reduction in Fall Damage
  4564. Slightly slowed falling speed
  4565.  
  4566.  
  4567. APEX
  4568. -----------------
  4569. Apex are swift and potent, but need to ingest a bit more food than other races.
  4570.  
  4571. High Metabolism: Increased food requirement, but gain +11% speed and +15% jump
  4572. Immune to Jungle tiles
  4573. Immune to Mud tiles
  4574. Max HP +20%
  4575.  
  4576.  
  4577.  
  4578. FLORAN
  4579. --------------
  4580. Floran are unique to play as their bonuses revolve around sunlight and food.
  4581.  
  4582. Photosynthesis: Regenerate your HP during sunlight hours no matter where you are
  4583. Floran Hunger: As you get hungrier your damage increases. Near starvation, you have a substantial boost.
  4584. HP -5%
  4585. Energy +15%
  4586. Reduced Breath Depletion rate. You won't drown as fast.
  4587.  
  4588.  
  4589. HYLOTL
  4590. -----------------
  4591. True warrior spirits, Hylotl are especially useful when wielding a shield , or underwater.
  4592.  
  4593. 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.
  4594.  
  4595. 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.
  4596.  
  4597. Max Health +20
  4598. “Wet” Status effect doesn’t affect them
  4599.  
  4600.  
  4601.  
  4602. GLITCH
  4603. -------------------
  4604. Glitch are clunky and tough, and their medieval way of life has them well prepared when using a shield.
  4605.  
  4606. 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.
  4607.  
  4608. Attrition: Glitch need far less food than other races. However, this comes at a cost of an additional 15% Falling Damage.
  4609.  
  4610. in testing: when immersed in water, lose some HP and Energy
  4611.  
  4612. HP + 10%
  4613. Energy +5%
  4614. Protection +7
  4615. Needs no air
  4616. Poison Immunity
  4617. Bee Sting Immunity
  4618.  
  4619.  
  4620. NOVAKID
  4621. -----------------
  4622. 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.
  4623.  
  4624. HP -10%
  4625. Energy +40%
  4626. 60% Knockback Resistance
  4627. Glow in the Dark
  4628. Speed +8.5%
  4629. TOTAL Radiation Immunity
  4630. Burn Immunity
  4631.  
  4632.  
  4633.  
  4634. FELIN
  4635. -------------------
  4636. 50% fall damage
  4637. Run Speed +7%
  4638. Jump Height +15%
  4639. Damage +8%
  4640. Insanity Immunity
  4641.  
  4642.  
  4643.  
  4644.  
  4645. ORCANA
  4646. ----------------
  4647. HP +40
  4648. Breath protection
  4649. Immune to wet effect
  4650.  
  4651. Underwater:
  4652. Swim Boost 2
  4653. Max Food increase
  4654. Regeneration
  4655.  
  4656.  
  4657. PEGLACI
  4658. ---------------:
  4659. Liquid Nitrogen Immunity
  4660. Basic Cold Immunity
  4661. +20 Energy
  4662. Ice Slip Immunity
  4663.  
  4664.  
  4665. AVALI:
  4666. ------------------
  4667. Fall slower and have slight gliding ability.
  4668. +5% speed
  4669. +5% jump
  4670. +5% damage
  4671. Immune to Snow
  4672. Immune to Cold
  4673.  
  4674.  
  4675. FENEROX
  4676. ---------------------
  4677. HP -5%
  4678. Energy +10%
  4679. +6% Damage
  4680. Nocturnal Regeneration
  4681. Metabolism: Increased food consumption, but gain +11% speed and +15% jump
  4682. Immunity to Poison
  4683.  
  4684.  
  4685. AVIKAN:
  4686. --------------------
  4687. Fire Immunity
  4688. Heat Immunity
  4689. HP + 20
  4690.  
  4691.  
  4692. PONEX
  4693. ------------
  4694. +25% ground speed
  4695. Immune to Bees
  4696. Immune to Honey
  4697. Knockback Resistance 50%
  4698.  
  4699.  
  4700. VIERA
  4701. --------------
  4702. +12% Speed
  4703. Immunity to Slime
  4704. Reduced hunger rate
  4705. reduced shield stamina regen time
  4706. Perfect Blocking with a shield restores some energy. Successive blocks add to the amount healed. Failing a block resets the count.
  4707.  
  4708.  
  4709. FAMILIAR
  4710. --------------------
  4711. Glow in the Dark
  4712. Breath Amount x2
  4713. Bio-Ooze immunity
  4714. Spiderweb immunity
  4715. Black Tar immunity
  4716.  
  4717. INKLING
  4718. ----------------
  4719. decreased hunger rate
  4720. Immune to Wet effect
  4721.  
  4722. Underwater:
  4723. Greater decreased hunger
  4724. breath depletion rate reduction
  4725. faster Energy regen
  4726. Max Energy +12
  4727.  
  4728.  
  4729. MUNARI
  4730. --------------
  4731. Nothing but a swim boost yet
  4732.  
  4733.  
  4734.  
  4735. KEMONO
  4736. ---------------
  4737. Decreased Shield Regen time
  4738. Perfect Block limit regen reduced
  4739. Reduced food consumption rate
  4740. Speed +10%
  4741. Jump +10%
  4742.  
  4743.  
  4744. KINEPTIC
  4745. -------------------
  4746. Max Energy +40
  4747. Energy Regen increase
  4748. Speed +5%
  4749. Jump +5%
  4750.  
  4751.  
  4752. NEKO
  4753. -------------
  4754. HP + 20
  4755. Increased energy regen amount
  4756. 50% fall damage reduction
  4757. Speed +5%
  4758. Jump +10%
  4759.  
  4760.  
  4761. VULPES
  4762. --------------
  4763. Knockback reduced 40%
  4764. immune to jungle tile slowdown
  4765. Energy +12%
  4766. Speed +14%
  4767.  
  4768.  
  4769. VESPOIDS
  4770. -------------------
  4771. 70% fall damage reduction
  4772. sting immunity
  4773. honey immunity
  4774. +8% speed
  4775. Slighly sticky on walls (experiment)
  4776. reduced air force
  4777.  
  4778.  
  4779. Q: Do I need Frackin' Universe to use this mod?
  4780. A: No, but most immunities of your race will be rendered pointless. But the rest is playable without issue.
  4781.  
  4782. Q: I installed the mod but the races aren't showing up! What do?
  4783. A: This mod does not add races, it simply makes each unique. Go to the race mod pages to get them
  4784.  
  4785. Q: Why is [mechanic] not working?
  4786. 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.
  4787.  
  4788. Q: Can you add [insert race name]? That's be sweet!
  4789. A: Potentially! If you don't see it suggested in the comments already, mention it! It may take awhile, though.
  4790.  
  4791. Q: I think this race should be [different mechanic] instead. Can you change it?
  4792. A: Either yes or no. Thank you for the suggestions, but please accept a no if given.
  4793.  
  4794. Q: Why are you so awesome?
  4795. A: Well, because [redacted].
  4796.  
  4797. Q: Why isn't this mod working?
  4798. A: Question 1. If you have that, question 2. If that's not the issue, question 3.
  4799.  
  4800.  
  4801.  
  4802. Q: Will this mod work with your existing character?
  4803.  
  4804. A: Yes
  4805.  
  4806. Q. Is your favorite race mod supported?
  4807.  
  4808. A: Use your eyes and read. Do you see it listed? Yes? Then yes. No? Then no.
  4809.  
  4810.  
  4811. Q: "My races powers aren't working"
  4812.  
  4813. 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.
  4814.  
  4815. 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!
  4816.  
  4817. 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