FILES ----- asteroids_worlds.config celestial.config client.config dungeon_worlds.config help.config instance_worlds.config interface.config metamaterials.config player.config rendering.config sky.config [NEW] systemworld.config [NEW] system_objects.config terrestrial_worlds.config universeflags.config universe_server.config versioning.config worldserver.config worldstorage.config _metadata achievements\achievement.lua achievements\event.lua [NEW] animations\deployment\deploypod.frames [NEW] animations\deployment\deploypod.png [NEW] animations\deployment\deploypodin.frames [NEW] animations\deployment\deploypodin.png [NEW] animations\deployment\deploypodloop.frames [NEW] animations\deployment\deploypodloop.png [NEW] animations\deployment\deployshardbottom.png [NEW] animations\deployment\deployshardleft.png [NEW] animations\deployment\deployshardright.png [NEW] animations\deployment\deployshardtop.png [NEW] animations\energybeamtrail\energybeamtrail.animation [NEW] animations\energybeamtrail\energybeamtrail.frames [NEW] animations\energybeamtrail\energybeamtrail.png [NEW] animations\heatbeamtrail\default.frames [NEW] animations\heatbeamtrail\heatbeamtrail.animation [NEW] animations\heatbeamtrail\heatbeamtrail.png [NEW] animations\miniwobbleshottrail\default.frames [NEW] animations\miniwobbleshottrail\miniwobbleshottrail.animation [NEW] animations\miniwobbleshottrail\miniwobbleshottrail.png [NEW] animations\spaceplasmatrail\default.frames [NEW] animations\spaceplasmatrail\spaceplasmatrail.animation [NEW] animations\spaceplasmatrail\spaceplasmatrail.png [NEW] behaviors\starbound.behavior-project behaviors\monsters\tracking.behavior behaviors\monsters\boss\apeboss\apeboss.behavior behaviors\monsters\boss\apeboss\circlepattern.behavior behaviors\monsters\boss\apeboss\crosspattern.behavior behaviors\monsters\boss\apeboss\fistattack.behavior behaviors\monsters\boss\apeboss\idle.behavior behaviors\monsters\boss\apeboss\missileattack.behavior behaviors\monsters\boss\apeboss\needleattack.behavior behaviors\monsters\boss\apeboss\pelletattack.behavior behaviors\monsters\boss\apeboss\stagesound.behavior behaviors\monsters\boss\apeboss\sweepattack.behavior behaviors\monsters\boss\apeboss\transition.behavior behaviors\monsters\boss\cultistboss\beamattack.behavior behaviors\monsters\boss\cultistboss\cultistboss.behavior behaviors\monsters\boss\cultistboss\dashattack.behavior behaviors\monsters\boss\cultistboss\exhaust.behavior behaviors\monsters\boss\cultistboss\facecenter.behavior behaviors\monsters\boss\cultistboss\flyingslashattack.behavior behaviors\monsters\boss\cultistboss\slashattack.behavior behaviors\monsters\boss\cultistboss\sphereattack.behavior behaviors\monsters\boss\cultistboss\teleport.behavior behaviors\monsters\boss\cultistbossend\cultistbossend.behavior behaviors\monsters\boss\dragonboss\dragonaim.behavior behaviors\monsters\boss\dragonboss\dragonboss.behavior behaviors\monsters\boss\dragonboss\dragonbreath.behavior behaviors\monsters\boss\eyeboss\eyeboss.behavior behaviors\monsters\boss\eyeboss\eyebossanimate.behavior behaviors\monsters\boss\eyeboss\eyebossbeam.behavior behaviors\monsters\boss\eyeboss\eyebossdeath.behavior behaviors\monsters\boss\eyeboss\eyebossidle.behavior behaviors\monsters\boss\eyeboss\eyebossmessaging.behavior behaviors\monsters\boss\eyeboss\eyebossspawn.behavior behaviors\monsters\boss\guardian\attacksequence.behavior behaviors\monsters\boss\guardian\beamspin.behavior behaviors\monsters\boss\guardian\damagestun.behavior behaviors\monsters\boss\guardian\doublegroundbeam.behavior behaviors\monsters\boss\guardian\floorprojectiles.behavior behaviors\monsters\boss\guardian\guardian.behavior behaviors\monsters\boss\guardian\guardiandash.behavior behaviors\monsters\boss\guardian\guardiandebuff.behavior behaviors\monsters\boss\guardian\guardianslam.behavior behaviors\monsters\boss\guardian\lowgroundbeam.behavior behaviors\monsters\boss\guardian\meleestab.behavior behaviors\monsters\boss\guardian\phasesequence.behavior behaviors\monsters\boss\guardian\platformbumpers.behavior behaviors\monsters\boss\guardian\pogobeam.behavior behaviors\monsters\boss\guardian\projectilecircle.behavior behaviors\monsters\boss\guardian\spawnminiongroup.behavior behaviors\monsters\boss\guardian\targetedbeam.behavior behaviors\monsters\boss\guardian\targeteddash.behavior behaviors\monsters\boss\guardian\targetedprojectile.behavior behaviors\monsters\boss\kluexboss\changecolor.behavior behaviors\monsters\boss\kluexboss\fireattack.behavior behaviors\monsters\boss\kluexboss\iceattack.behavior behaviors\monsters\boss\kluexboss\kluexboss.behavior behaviors\monsters\boss\kluexboss\plasmaattack.behavior behaviors\monsters\boss\kluexboss\windattack.behavior behaviors\monsters\boss\kluexbossstatue\kluexbossstatue.behavior behaviors\monsters\boss\kluexbossstatue\statuefireattack.behavior behaviors\monsters\boss\kluexbossstatue\statueiceattack.behavior behaviors\monsters\boss\kluexbossstatue\statueplasmaattack.behavior behaviors\monsters\boss\spiderboss\acidspray.behavior behaviors\monsters\boss\spiderboss\hatch.behavior behaviors\monsters\boss\spiderboss\hurt.behavior behaviors\monsters\boss\spiderboss\main.behavior behaviors\monsters\boss\spiderboss\return.behavior behaviors\monsters\boss\spiderboss\setstage.behavior behaviors\monsters\boss\spiderboss\slam.behavior behaviors\monsters\boss\spiderboss\stage1.behavior behaviors\monsters\boss\spiderboss\stage2.behavior behaviors\monsters\boss\spiderboss\stage3.behavior behaviors\monsters\boss\spiderboss\sweep.behavior behaviors\monsters\coordinator\npccombat.behavior behaviors\monsters\critter\blooping.behavior behaviors\monsters\critter\flying.behavior behaviors\monsters\critter\swimming.behavior behaviors\monsters\critter\walking.behavior behaviors\monsters\mission\cultistballista.behavior behaviors\monsters\mission\helicultist.behavior behaviors\monsters\modular\basemonster.behavior behaviors\monsters\modular\monsterdeath.behavior behaviors\monsters\modular\targeting.behavior behaviors\monsters\modular\actions\aggrohop.behavior behaviors\monsters\modular\actions\animate.behavior behaviors\monsters\modular\actions\blink.behavior behaviors\monsters\modular\actions\charge.behavior behaviors\monsters\modular\actions\fire.behavior behaviors\monsters\modular\actions\ghostsparkle.behavior behaviors\monsters\modular\actions\globaltag.behavior behaviors\monsters\modular\actions\hop.behavior behaviors\monsters\modular\actions\invulnerable.behavior behaviors\monsters\modular\actions\leap.behavior [NEW] behaviors\monsters\modular\actions\pairbeam.behavior behaviors\monsters\modular\actions\projectile.behavior [NEW] behaviors\monsters\modular\actions\rotatepart.behavior behaviors\monsters\modular\actions\spawncompanions.behavior behaviors\monsters\modular\actions\stop.behavior behaviors\monsters\modular\actions\suicide.behavior behaviors\monsters\modular\actions\swoop.behavior behaviors\monsters\modular\actions\winddown.behavior behaviors\monsters\modular\actions\windup.behavior [NEW] behaviors\monsters\modular\movement\burnapproach.behavior behaviors\monsters\modular\movement\crawlapproach.behavior behaviors\monsters\modular\movement\crawlidle.behavior behaviors\monsters\modular\movement\crawlwander.behavior behaviors\monsters\modular\movement\emerge-fly.behavior [NEW] behaviors\monsters\modular\movement\fallapproach.behavior behaviors\monsters\modular\movement\flyapproach.behavior behaviors\monsters\modular\movement\flywander.behavior behaviors\monsters\modular\movement\jump.behavior behaviors\monsters\modular\movement\land-fly.behavior [NEW] behaviors\monsters\modular\movement\leadorbitapproach.behavior behaviors\monsters\modular\movement\nudge.behavior behaviors\monsters\modular\movement\spawnmonster.behavior behaviors\monsters\modular\movement\swarmapproach.behavior behaviors\monsters\modular\movement\teleportapproach.behavior [NEW] behaviors\monsters\modular\movement\turnapproach.behavior behaviors\monsters\modular\movement\walkapproach.behavior behaviors\monsters\modular\movement\walkwander.behavior behaviors\monsters\unique\bigapehologram.behavior behaviors\monsters\unique\farmable.behavior behaviors\monsters\unique\farmablebaby.behavior behaviors\monsters\unique\kluextotem.behavior [NEW] behaviors\monsters\unique\masteroidsplit.behavior behaviors\monsters\unique\taroni.behavior [NEW] behaviors\nodes\action.nodes [NEW] behaviors\nodes\animator.nodes [NEW] behaviors\nodes\apeboss.nodes [NEW] behaviors\nodes\builders.nodes [NEW] behaviors\nodes\composite.nodes [NEW] behaviors\nodes\container.nodes [NEW] behaviors\nodes\crew.nodes [NEW] behaviors\nodes\cultistboss.nodes [NEW] behaviors\nodes\data.nodes [NEW] behaviors\nodes\decorator.nodes [NEW] behaviors\nodes\dialog.nodes [NEW] behaviors\nodes\entity.nodes [NEW] behaviors\nodes\eyeboss.nodes [NEW] behaviors\nodes\farmable.nodes [NEW] behaviors\nodes\flying.nodes [NEW] behaviors\nodes\groups.nodes [NEW] behaviors\nodes\guardian.nodes [NEW] behaviors\nodes\items.nodes [NEW] behaviors\nodes\kluexboss.nodes [NEW] behaviors\nodes\lists.nodes [NEW] behaviors\nodes\math.nodes [NEW] behaviors\nodes\module.nodes [NEW] behaviors\nodes\monster.nodes [NEW] behaviors\nodes\movement.nodes [NEW] behaviors\nodes\notification.nodes [NEW] behaviors\nodes\npc.nodes [NEW] behaviors\nodes\overrides.nodes [NEW] behaviors\nodes\pets.nodes [NEW] behaviors\nodes\position.nodes [NEW] behaviors\nodes\projectiles.nodes [NEW] behaviors\nodes\query.nodes [NEW] behaviors\nodes\quest.nodes [NEW] behaviors\nodes\reaction.nodes [NEW] behaviors\nodes\sensor.nodes [NEW] behaviors\nodes\space.nodes [NEW] behaviors\nodes\status.nodes [NEW] behaviors\nodes\tenant.nodes [NEW] behaviors\nodes\time.nodes [NEW] behaviors\nodes\tonauac.nodes [NEW] behaviors\nodes\world.nodes behaviors\npc\accuse.behavior behaviors\npc\attackthief.behavior behaviors\npc\chat.behavior behaviors\npc\combat.behavior behaviors\npc\converse.behavior behaviors\npc\converseseq.behavior behaviors\npc\droptrash.behavior behaviors\npc\finalreact.behavior behaviors\npc\flee.behavior behaviors\npc\floranspectator.behavior behaviors\npc\follower.behavior behaviors\npc\guard.behavior behaviors\npc\hail.behavior behaviors\npc\hostileguard.behavior behaviors\npc\hostiletracking.behavior behaviors\npc\idle.behavior behaviors\npc\inspect.behavior behaviors\npc\lounger.behavior behaviors\npc\merchant.behavior behaviors\npc\npcblink.behavior behaviors\npc\outpostvisitor.behavior behaviors\npc\pather.behavior behaviors\npc\patrol.behavior behaviors\npc\play.behavior behaviors\npc\protectoratejanitor.behavior behaviors\npc\react.behavior behaviors\npc\reactionchat.behavior behaviors\npc\reactionplayer.behavior behaviors\npc\runaway.behavior behaviors\npc\simple.behavior behaviors\npc\sit.behavior behaviors\npc\sleep.behavior behaviors\npc\speaker.behavior behaviors\npc\tenant.behavior behaviors\npc\tutorial.behavior behaviors\npc\villageguard.behavior behaviors\npc\villager.behavior behaviors\npc\wander.behavior behaviors\npc\wanderSimple.behavior behaviors\npc\combat\melee.behavior behaviors\npc\combat\meleeaim.behavior behaviors\npc\combat\meleeapproach.behavior behaviors\npc\combat\meleeleap.behavior behaviors\npc\combat\meleestandby.behavior behaviors\npc\combat\ranged.behavior behaviors\npc\crew\catchup.behavior behaviors\npc\crew\combat.behavior behaviors\npc\crew\crewmember.behavior behaviors\npc\crew\emptyhands.behavior behaviors\npc\crew\fieldbenefits.behavior behaviors\npc\crew\follow.behavior behaviors\npc\crew\notifications.behavior behaviors\npc\crew\teleport.behavior behaviors\npc\crew\tout.behavior behaviors\npc\overrides\override-flee.behavior behaviors\npc\overrides\override-follow.behavior behaviors\npc\overrides\override-idle.behavior behaviors\npc\overrides\override-notification.behavior behaviors\npc\overrides\overrides.behavior behaviors\npc\quests\quest-barter-target-notification.behavior behaviors\npc\quests\quest-borrow-notification.behavior behaviors\npc\quests\quest-bribe-notification.behavior behaviors\npc\quests\quest-collect_fine-notification.behavior behaviors\npc\quests\quest-collect_gift-notification.behavior behaviors\npc\quests\quest-escort-notification.behavior behaviors\npc\quests\quest-escort_trade-questgiver-notification.behavior behaviors\npc\quests\quest-escort_trade-target-notification.behavior behaviors\npc\quests\quest-extort-notification.behavior behaviors\npc\quests\quest-gift-notification.behavior behaviors\npc\quests\quest-hat-friend-notification.behavior behaviors\npc\quests\quest-hat-questGiver-notification.behavior behaviors\npc\quests\quest-helmet-friend-notification.behavior behaviors\npc\quests\quest-helmet-questGiver-notification.behavior behaviors\npc\quests\quest-intimidate-notification.behavior behaviors\npc\quests\quest-kidnapping-idle.behavior behaviors\npc\quests\quest-kidnapping-notification.behavior behaviors\npc\quests\quest-kidnapping-questgiver-notification.behavior behaviors\npc\quests\quest-kill_npc-enemy-notification.behavior behaviors\npc\quests\quest-kill_npcs-assistant-notification.behavior behaviors\npc\quests\quest-new_stock-questGiver-notification.behavior behaviors\npc\quests\quest-new_stock-target-notification.behavior behaviors\npc\quests\quest-request_craft-notification.behavior behaviors\npc\quests\quest-return_stolen-idle.behavior behaviors\npc\quests\quest-return_stolen-notification.behavior behaviors\npc\quests\quest-share_secret-notification.behavior behaviors\npc\quests\quest-stay_at_home-idle.behavior behaviors\npc\quests\quest-steal.behavior behaviors\npc\reactions\beamaway.behavior behaviors\npc\reactions\bored.behavior behaviors\npc\reactions\burn.behavior behaviors\npc\reactions\comfort.behavior behaviors\npc\reactions\crouch.behavior behaviors\npc\reactions\crouchcollect.behavior behaviors\npc\reactions\crouchwarm.behavior behaviors\npc\reactions\drum.behavior behaviors\npc\reactions\explode.behavior behaviors\npc\reactions\flee.behavior behaviors\npc\reactions\flirtwithplayer.behavior behaviors\npc\reactions\follow.behavior behaviors\npc\reactions\gohome.behavior behaviors\npc\reactions\gong.behavior behaviors\npc\reactions\hop.behavior behaviors\npc\reactions\hurthop.behavior behaviors\npc\reactions\jumpforjoy.behavior behaviors\npc\reactions\love.behavior behaviors\npc\reactions\mourn.behavior behaviors\npc\reactions\nosebleed.behavior behaviors\npc\reactions\pianoparty.behavior behaviors\npc\reactions\playairhockey.behavior behaviors\npc\reactions\pretendbeam.behavior behaviors\npc\reactions\touchandexplode.behavior behaviors\npc\reactions\touchfire.behavior behaviors\npc\reactions\vomit.behavior behaviors\npc\reactions\watchsleeping.behavior behaviors\npc\reactions\wet.behavior behaviors\npc\unique\castlearcher.behavior behaviors\npc\unique\cultistinvader.behavior behaviors\npc\unique\esther.behavior behaviors\npc\unique\tonauac.behavior behaviors\sequences\beamout.behavior behaviors\sequences\sequentialdialog.behavior behaviors\sequences\sequentialdialognoskip.behavior behaviors\sequences\apexmission\apexrebel.behavior behaviors\sequences\apexmission\lanaend.behavior behaviors\sequences\apexmission\lanastart.behavior behaviors\sequences\avianmission\tonauacdoor.behavior behaviors\sequences\avianmission\tonauacend.behavior behaviors\sequences\avianmission\tonauacstart.behavior behaviors\sequences\floranmission\chieftain.behavior behaviors\sequences\floranmission\floranmissionstart.behavior behaviors\sequences\floranmission\floranmissionswitch.behavior behaviors\sequences\floranmission\nuruboss.behavior behaviors\sequences\floranmission\nurucombat.behavior behaviors\sequences\floranmission\nuruendscene.behavior behaviors\sequences\floranmission\nurustartboss.behavior behaviors\sequences\floranmission\nurutunnel.behavior behaviors\sequences\glitchmission\baronlounge.behavior behaviors\sequences\glitchmission\baronstart.behavior behaviors\sequences\glitchmission\nurufight.behavior behaviors\sequences\hylotlmission\koichiend.behavior behaviors\sequences\hylotlmission\koichihologram.behavior behaviors\tenant\grumble.behavior behaviors\tenant\returnhome.behavior [NEW] biomes\space\space.biome [NEW] celestial\anomalynames.config [NEW] celestial\system\anomaly\anomaly.png [NEW] celestial\system\anomaly\anomalyhorizonleft.png [NEW] celestial\system\anomaly\anomalyhorizonright.png [NEW] celestial\system\ships\npcship.png [NEW] celestial\system\ships\playership.png [NEW] celestial\system\ships\shiphorizonleft.png [NEW] celestial\system\ships\shiphorizonright.png [NEW] celestial\system\spacestation\spacestationicon.png [NEW] celestial\system\spacestation\stationhorizonleft.png [NEW] celestial\system\spacestation\stationhorizonright.png cinematics\story\finale\finale.cinematic [NEW] cinematics\teleport\deploypodin_apex.frames [NEW] cinematics\teleport\deploypodin_apex.png [NEW] cinematics\teleport\deploypodin_avian.frames [NEW] cinematics\teleport\deploypodin_avian.png [NEW] cinematics\teleport\deploypodin_floran.frames [NEW] cinematics\teleport\deploypodin_floran.png [NEW] cinematics\teleport\deploypodin_glitch.frames [NEW] cinematics\teleport\deploypodin_glitch.png [NEW] cinematics\teleport\deploypodin_human.frames [NEW] cinematics\teleport\deploypodin_human.png [NEW] cinematics\teleport\deploypodin_hylotl.frames [NEW] cinematics\teleport\deploypodin_hylotl.png [NEW] cinematics\teleport\deploypodin_novakid.frames [NEW] cinematics\teleport\deploypodin_novakid.png [NEW] cinematics\teleport\deploypod_apex.frames [NEW] cinematics\teleport\deploypod_apex.png [NEW] cinematics\teleport\deploypod_avian.frames [NEW] cinematics\teleport\deploypod_avian.png [NEW] cinematics\teleport\deploypod_floran.frames [NEW] cinematics\teleport\deploypod_floran.png [NEW] cinematics\teleport\deploypod_glitch.frames [NEW] cinematics\teleport\deploypod_glitch.png [NEW] cinematics\teleport\deploypod_human.frames [NEW] cinematics\teleport\deploypod_human.png [NEW] cinematics\teleport\deploypod_hylotl.frames [NEW] cinematics\teleport\deploypod_hylotl.png [NEW] cinematics\teleport\deploypod_novakid.frames [NEW] cinematics\teleport\deploypod_novakid.png [NEW] cinematics\teleport\deploy_apex.cinematic [NEW] cinematics\teleport\deploy_avian.cinematic [NEW] cinematics\teleport\deploy_floran.cinematic [NEW] cinematics\teleport\deploy_glitch.cinematic [NEW] cinematics\teleport\deploy_human.cinematic [NEW] cinematics\teleport\deploy_hylotl.cinematic [NEW] cinematics\teleport\deploy_novakid.cinematic [NEW] codex\human\humancover8.png codex\human\humanhistory1.codex [NEW] codex\human\humanspace1.codex [NEW] codex\hylotl\hylotlcover7.png [NEW] codex\hylotl\hylotlspace1.codex codex\optionalbosses\bossshockhopper.codex collections\actionfigures.collection collections\monsters.collection [NEW] cursors\zoomout.cursor [NEW] cursors\zoomout.png [NEW] damage\plasmashotgun.damage dialog\converse.config [NEW] dialog\shipcrew.config [NEW] dialog\spaceconverse.config [NEW] dialog\spacehero.config dungeons\microdungeons\underground\underground3c\underground3c_open1.json dungeons\missions\avianmissions\avianmission1.json dungeons\other\ancientvault\electric\room_9.json dungeons\other\challengerooms\ambush.json dungeons\other\challengerooms\challengerooms.dungeon dungeons\other\challengerooms\doubleteam.json dungeons\other\challengerooms\firebat.json dungeons\other\challengerooms\runandgun.json dungeons\other\challengerooms\swarm.json [NEW] dungeons\other\mechtest\mechtestadvanced.dungeon [NEW] dungeons\other\mechtest\mechtestadvanced.json [NEW] dungeons\other\mechtest\mechtestbasic.dungeon [NEW] dungeons\other\mechtest\mechtestbasic.json dungeons\other\outpost\outpost.json dungeons\other\outpost\outpost_full.json [NEW] dungeons\space\cultistship\back_1.json [NEW] dungeons\space\cultistship\back_2.json [NEW] dungeons\space\cultistship\cultistship.dungeon [NEW] dungeons\space\cultistship\front_1.json [NEW] dungeons\space\cultistship\front_2.json [NEW] dungeons\space\cultistship\middle_1.json [NEW] dungeons\space\cultistship\middle_2.json [NEW] dungeons\space\derelictship\backend1.json [NEW] dungeons\space\derelictship\backend2.json [NEW] dungeons\space\derelictship\backend3.json [NEW] dungeons\space\derelictship\cockpit1.json [NEW] dungeons\space\derelictship\cockpit2.json [NEW] dungeons\space\derelictship\cockpit3.json [NEW] dungeons\space\derelictship\derelictship.dungeon [NEW] dungeons\space\derelictship\middle1a.json [NEW] dungeons\space\derelictship\middle1b.json [NEW] dungeons\space\derelictship\middle2a.json [NEW] dungeons\space\derelictship\middle2b.json [NEW] dungeons\space\derelictship\middle2c.json [NEW] dungeons\space\derelictship\middle2d.json [NEW] dungeons\space\derelictship\middle3a.json [NEW] dungeons\space\derelictship\middle3b.json [NEW] dungeons\space\derelictship\middle4a.json [NEW] dungeons\space\derelictship\middle4b.json [NEW] dungeons\space\derelictship\middle5a.json [NEW] dungeons\space\derelictship\middle5b.json [NEW] dungeons\space\derelictship\middle5c.json [NEW] dungeons\space\derelictship\middle5d.json [NEW] dungeons\space\derelictship\middle6a.json [NEW] dungeons\space\derelictship\middle6b.json [NEW] dungeons\space\derelictship\middle7a.json [NEW] dungeons\space\derelictship\middle7b.json [NEW] dungeons\space\derelictship\middle8a.json [NEW] dungeons\space\derelictship\middle8b.json [NEW] dungeons\space\derelictship\template_basic.json [NEW] dungeons\space\hazards\hazard-asteroidbelt-traps1.json [NEW] dungeons\space\hazards\hazard-empty.json [NEW] dungeons\space\hazards\hazard-minefield1.json [NEW] dungeons\space\hazards\hazard-minefield2.json [NEW] dungeons\space\hazards\hazard-mixed1.json [NEW] dungeons\space\hazards\hazard-mixed2.json [NEW] dungeons\space\hazards\hazard-mixed3.json [NEW] dungeons\space\hazards\hazard-mixed4.json [NEW] dungeons\space\hazards\hazard-mixed5.json [NEW] dungeons\space\hazards\hazard-open1.json [NEW] dungeons\space\hazards\hazard-open2.json [NEW] dungeons\space\hazards\hazard-open3.json [NEW] dungeons\space\hazards\hazard-pirate1.json [NEW] dungeons\space\hazards\hazard-pirate2.json [NEW] dungeons\space\hazards\hazard-template-brushes.json [NEW] dungeons\space\hazards\hazard-template.json [NEW] dungeons\space\hazards\hazard-wreckage1.json [NEW] dungeons\space\hazards\hazard-wreckage2.json [NEW] dungeons\space\hazards\safe-empty.json [NEW] dungeons\space\hazards\monstergroups\largegroup-high1.json [NEW] dungeons\space\hazards\monstergroups\largegroup-high2.json [NEW] dungeons\space\hazards\monstergroups\largegroup-high3.json [NEW] dungeons\space\hazards\monstergroups\largegroup-high4.json [NEW] dungeons\space\hazards\monstergroups\largegroup-high5.json [NEW] dungeons\space\hazards\monstergroups\largegroup-low1.json [NEW] dungeons\space\hazards\monstergroups\largegroup-low2.json [NEW] dungeons\space\hazards\monstergroups\largegroup-low3.json [NEW] dungeons\space\hazards\monstergroups\largegroup-low4.json [NEW] dungeons\space\hazards\monstergroups\largegroup-low5.json [NEW] dungeons\space\hazards\monstergroups\largegroup-mid1.json [NEW] dungeons\space\hazards\monstergroups\largegroup-mid2.json [NEW] dungeons\space\hazards\monstergroups\largegroup-mid3.json [NEW] dungeons\space\hazards\monstergroups\largegroup-mid4.json [NEW] dungeons\space\hazards\monstergroups\largegroup-mid5.json [NEW] dungeons\space\hazards\monstergroups\smallgroup-high1.json [NEW] dungeons\space\hazards\monstergroups\smallgroup-high2.json [NEW] dungeons\space\hazards\monstergroups\smallgroup-high3.json [NEW] dungeons\space\hazards\monstergroups\smallgroup-high4.json [NEW] dungeons\space\hazards\monstergroups\smallgroup-high5.json [NEW] dungeons\space\hazards\monstergroups\smallgroup-low1.json [NEW] dungeons\space\hazards\monstergroups\smallgroup-low2.json [NEW] dungeons\space\hazards\monstergroups\smallgroup-low3.json [NEW] dungeons\space\hazards\monstergroups\smallgroup-low4.json [NEW] dungeons\space\hazards\monstergroups\smallgroup-low5.json [NEW] dungeons\space\hazards\monstergroups\smallgroup-mid1.json [NEW] dungeons\space\hazards\monstergroups\smallgroup-mid2.json [NEW] dungeons\space\hazards\monstergroups\smallgroup-mid3.json [NEW] dungeons\space\hazards\monstergroups\smallgroup-mid4.json [NEW] dungeons\space\hazards\monstergroups\smallgroup-mid5.json [NEW] dungeons\space\merchantship1\backend_1.json [NEW] dungeons\space\merchantship1\cockpit_1.json [NEW] dungeons\space\merchantship1\cockpit_2.json [NEW] dungeons\space\merchantship1\merchantship1.dungeon [NEW] dungeons\space\merchantship1\merchantship1.json [NEW] dungeons\space\merchantship1\middle_1.json [NEW] dungeons\space\merchantship1\middle_2.json [NEW] dungeons\space\merchantship1\middle_3.json [NEW] dungeons\space\merchantship2\merchantship2.dungeon [NEW] dungeons\space\merchantship2\merchantship2.json [NEW] dungeons\space\merchantship2\middle_1.json [NEW] dungeons\space\pirateship\backend1.json [NEW] dungeons\space\pirateship\backend2.json [NEW] dungeons\space\pirateship\backend3.json [NEW] dungeons\space\pirateship\cockpit1.json [NEW] dungeons\space\pirateship\cockpit2.json [NEW] dungeons\space\pirateship\cockpit3.json [NEW] dungeons\space\pirateship\middle1a.json [NEW] dungeons\space\pirateship\middle1b.json [NEW] dungeons\space\pirateship\middle2a.json [NEW] dungeons\space\pirateship\middle2b.json [NEW] dungeons\space\pirateship\middle2c.json [NEW] dungeons\space\pirateship\middle2d.json [NEW] dungeons\space\pirateship\middle3a.json [NEW] dungeons\space\pirateship\middle3b.json [NEW] dungeons\space\pirateship\middle4a.json [NEW] dungeons\space\pirateship\middle4b.json [NEW] dungeons\space\pirateship\middle5a.json [NEW] dungeons\space\pirateship\middle5b.json [NEW] dungeons\space\pirateship\middle5c.json [NEW] dungeons\space\pirateship\middle5d.json [NEW] dungeons\space\pirateship\middle6a.json [NEW] dungeons\space\pirateship\middle6b.json [NEW] dungeons\space\pirateship\middle7a.json [NEW] dungeons\space\pirateship\middle7b.json [NEW] dungeons\space\pirateship\middle8a.json [NEW] dungeons\space\pirateship\middle8b.json [NEW] dungeons\space\pirateship\pirateship.dungeon [NEW] dungeons\space\pirateship\template_basic.json [NEW] dungeons\space\playerstation\2bendlbtr.dungeon [NEW] dungeons\space\playerstation\2bendlbtr.json [NEW] dungeons\space\playerstation\2bendlbtr.png [NEW] dungeons\space\playerstation\2bendltbr.dungeon [NEW] dungeons\space\playerstation\2bendltbr.json [NEW] dungeons\space\playerstation\2bendltbr.png [NEW] dungeons\space\playerstation\bendbl.dungeon [NEW] dungeons\space\playerstation\bendbl.json [NEW] dungeons\space\playerstation\bendbl.png [NEW] dungeons\space\playerstation\bendbr.dungeon [NEW] dungeons\space\playerstation\bendbr.json [NEW] dungeons\space\playerstation\bendbr.png [NEW] dungeons\space\playerstation\bendtl.dungeon [NEW] dungeons\space\playerstation\bendtl.json [NEW] dungeons\space\playerstation\bendtl.png [NEW] dungeons\space\playerstation\bendtr.dungeon [NEW] dungeons\space\playerstation\bendtr.json [NEW] dungeons\space\playerstation\bendtr.png [NEW] dungeons\space\playerstation\core.dungeon [NEW] dungeons\space\playerstation\core.json [NEW] dungeons\space\playerstation\core.png [NEW] dungeons\space\playerstation\cross.dungeon [NEW] dungeons\space\playerstation\cross.json [NEW] dungeons\space\playerstation\cross.png [NEW] dungeons\space\playerstation\hugecore.dungeon [NEW] dungeons\space\playerstation\hugecore.json [NEW] dungeons\space\playerstation\hugecore.png [NEW] dungeons\space\playerstation\juncblr.dungeon [NEW] dungeons\space\playerstation\juncltb.dungeon [NEW] dungeons\space\playerstation\juncrtb.dungeon [NEW] dungeons\space\playerstation\junctlr.dungeon [NEW] dungeons\space\playerstation\mechassembly.dungeon [NEW] dungeons\space\playerstation\mechassembly.json [NEW] dungeons\space\playerstation\mechassembly.png [NEW] dungeons\space\playerstation\mechbayleft.dungeon [NEW] dungeons\space\playerstation\mechbayleft.json [NEW] dungeons\space\playerstation\mechbayleft.png [NEW] dungeons\space\playerstation\mechbayright.dungeon [NEW] dungeons\space\playerstation\mechbayright.json [NEW] dungeons\space\playerstation\mechbayright.png [NEW] dungeons\space\playerstation\parts.config [NEW] dungeons\space\playerstation\passage.dungeon [NEW] dungeons\space\playerstation\passage.json [NEW] dungeons\space\playerstation\passage.png [NEW] dungeons\space\playerstation\passageglass.dungeon [NEW] dungeons\space\playerstation\passageglass.json [NEW] dungeons\space\playerstation\passageglass.png [NEW] dungeons\space\playerstation\playerstation.dungeon [NEW] dungeons\space\playerstation\shaft.dungeon [NEW] dungeons\space\playerstation\shaft.json [NEW] dungeons\space\playerstation\shaft.png [NEW] dungeons\space\playerstation\shaftglass.dungeon [NEW] dungeons\space\playerstation\shaftglass.json [NEW] dungeons\space\playerstation\shaftglass.png [NEW] dungeons\space\playerstation\start.json [NEW] dungeons\space\playerstation\tjuncblr.json [NEW] dungeons\space\playerstation\tjuncblr.png [NEW] dungeons\space\playerstation\tjuncltb.json [NEW] dungeons\space\playerstation\tjuncltb.png [NEW] dungeons\space\playerstation\tjuncrtb.json [NEW] dungeons\space\playerstation\tjuncrtb.png [NEW] dungeons\space\playerstation\tjunctlr.json [NEW] dungeons\space\playerstation\tjunctlr.png [NEW] dungeons\space\researchship\backend1.json [NEW] dungeons\space\researchship\backend2.json [NEW] dungeons\space\researchship\backend3.json [NEW] dungeons\space\researchship\cockpit1.json [NEW] dungeons\space\researchship\cockpit2.json [NEW] dungeons\space\researchship\cockpit3.json [NEW] dungeons\space\researchship\middle1a.json [NEW] dungeons\space\researchship\middle1b.json [NEW] dungeons\space\researchship\middle2a.json [NEW] dungeons\space\researchship\middle2b.json [NEW] dungeons\space\researchship\middle2c.json [NEW] dungeons\space\researchship\middle2d.json [NEW] dungeons\space\researchship\middle3a.json [NEW] dungeons\space\researchship\middle3b.json [NEW] dungeons\space\researchship\middle4a.json [NEW] dungeons\space\researchship\middle4b.json [NEW] dungeons\space\researchship\middle5a.json [NEW] dungeons\space\researchship\middle5b.json [NEW] dungeons\space\researchship\middle5c.json [NEW] dungeons\space\researchship\middle5d.json [NEW] dungeons\space\researchship\middle6a.json [NEW] dungeons\space\researchship\middle6b.json [NEW] dungeons\space\researchship\middle7a.json [NEW] dungeons\space\researchship\middle7b.json [NEW] dungeons\space\researchship\middle8a.json [NEW] dungeons\space\researchship\middle8b.json [NEW] dungeons\space\researchship\researchship.dungeon [NEW] dungeons\space\researchship\template_basic.json [NEW] dungeons\space\spaceencounter\astrofae_haven.json [NEW] dungeons\space\spaceencounter\base_ruin1.json [NEW] dungeons\space\spaceencounter\base_ruin2.json [NEW] dungeons\space\spaceencounter\base_ruin3.json [NEW] dungeons\space\spaceencounter\friendly_arcade1.json [NEW] dungeons\space\spaceencounter\friendly_arcade2.json [NEW] dungeons\space\spaceencounter\friendly_ark.json [NEW] dungeons\space\spaceencounter\friendly_lab1.json [NEW] dungeons\space\spaceencounter\friendly_lab2.json [NEW] dungeons\space\spaceencounter\friendly_lab3.json [NEW] dungeons\space\spaceencounter\friendly_lab4.json [NEW] dungeons\space\spaceencounter\island_garden1.json [NEW] dungeons\space\spaceencounter\letheia_1.json [NEW] dungeons\space\spaceencounter\merchant_island1.json [NEW] dungeons\space\spaceencounter\merchant_island2.json [NEW] dungeons\space\spaceencounter\miniknogbase.json [NEW] dungeons\space\spaceencounter\neutral_ancient_asteroid1.json [NEW] dungeons\space\spaceencounter\neutral_blank.json [NEW] dungeons\space\spaceencounter\neutral_mining_asteroid1.json [NEW] dungeons\space\spaceencounter\neutral_mining_asteroid10.json [NEW] dungeons\space\spaceencounter\neutral_mining_asteroid11.json [NEW] dungeons\space\spaceencounter\neutral_mining_asteroid12.json [NEW] dungeons\space\spaceencounter\neutral_mining_asteroid13.json [NEW] dungeons\space\spaceencounter\neutral_mining_asteroid14.json [NEW] dungeons\space\spaceencounter\neutral_mining_asteroid15.json [NEW] dungeons\space\spaceencounter\neutral_mining_asteroid16.json [NEW] dungeons\space\spaceencounter\neutral_mining_asteroid17.json [NEW] dungeons\space\spaceencounter\neutral_mining_asteroid18.json [NEW] dungeons\space\spaceencounter\neutral_mining_asteroid19.json [NEW] dungeons\space\spaceencounter\neutral_mining_asteroid2.json [NEW] dungeons\space\spaceencounter\neutral_mining_asteroid20.json [NEW] dungeons\space\spaceencounter\neutral_mining_asteroid3.json [NEW] dungeons\space\spaceencounter\neutral_mining_asteroid4.json [NEW] dungeons\space\spaceencounter\neutral_mining_asteroid5.json [NEW] dungeons\space\spaceencounter\neutral_mining_asteroid6.json [NEW] dungeons\space\spaceencounter\neutral_mining_asteroid7.json [NEW] dungeons\space\spaceencounter\neutral_mining_asteroid8.json [NEW] dungeons\space\spaceencounter\neutral_mining_asteroid9.json [NEW] dungeons\space\spaceencounter\neutral_novakid1.json [NEW] dungeons\space\spaceencounter\novakid_asteroid_saloon.json [NEW] dungeons\space\spaceencounter\offices1.json [NEW] dungeons\space\spaceencounter\pods.json [NEW] dungeons\space\spaceencounter\poptop_farm.json [NEW] dungeons\space\spaceencounter\refinery1.json [NEW] dungeons\space\spaceencounter\refinery2.json [NEW] dungeons\space\spaceencounter\shelter1.json [NEW] dungeons\space\spaceencounter\shelter2.json [NEW] dungeons\space\spaceencounter\shelter3.json [NEW] dungeons\space\spaceencounter\shelter4.json [NEW] dungeons\space\spaceencounter\shelter5.json [NEW] dungeons\space\spaceencounter\spaceencounter.dungeon [NEW] dungeons\space\spaceencounter\space_camp1.json [NEW] dungeons\space\spaceencounter\space_camp2.json [NEW] dungeons\space\spaceencounter\space_camp3.json [NEW] dungeons\space\spaceencounter\space_camp4.json [NEW] dungeons\space\spaceencounter\space_diner1.json [NEW] dungeons\space\spaceencounter\space_hotel1.json [NEW] dungeons\space\spaceencounter\storage1.json [NEW] dungeons\space\spaceencounter\storage2.json [NEW] dungeons\space\spaceencounter\template_basic.json [NEW] dungeons\space\spaceencounter\template_novakid.json [NEW] dungeons\space\spaceencounter\uscmship.json [NEW] dungeons\space\spacestation\core_horizontal_long.json [NEW] dungeons\space\spacestation\core_horizontal_long1a.json [NEW] dungeons\space\spacestation\core_horizontal_long1b.json [NEW] dungeons\space\spacestation\core_horizontal_long2a.json [NEW] dungeons\space\spacestation\core_horizontal_long2b.json [NEW] dungeons\space\spacestation\core_horizontal_short.json [NEW] dungeons\space\spacestation\core_horizontal_short1.json [NEW] dungeons\space\spacestation\core_horizontal_short1a.json [NEW] dungeons\space\spacestation\core_horizontal_short1b.json [NEW] dungeons\space\spacestation\core_horizontal_short2a.json [NEW] dungeons\space\spacestation\core_horizontal_short2b.json [NEW] dungeons\space\spacestation\core_horizontal_short2c.json [NEW] dungeons\space\spacestation\core_horizontal_short2d.json [NEW] dungeons\space\spacestation\core_horizontal_short3.json [NEW] dungeons\space\spacestation\core_horizontal_short3a.json [NEW] dungeons\space\spacestation\core_horizontal_short3b.json [NEW] dungeons\space\spacestation\core_horizontal_short4.json [NEW] dungeons\space\spacestation\core_horizontal_short4a.json [NEW] dungeons\space\spacestation\core_horizontal_short4b.json [NEW] dungeons\space\spacestation\mechbay_left.json [NEW] dungeons\space\spacestation\mechbay_right.json [NEW] dungeons\space\spacestation\quarters_bottom1.json [NEW] dungeons\space\spacestation\quarters_bottom2.json [NEW] dungeons\space\spacestation\quarters_bottom_long1a.json [NEW] dungeons\space\spacestation\quarters_bottom_long1b.json [NEW] dungeons\space\spacestation\quarters_bottom_long1c.json [NEW] dungeons\space\spacestation\quarters_bottom_long1d.json [NEW] dungeons\space\spacestation\quarters_row10a.json [NEW] dungeons\space\spacestation\quarters_row10b.json [NEW] dungeons\space\spacestation\quarters_row10c.json [NEW] dungeons\space\spacestation\quarters_row10d.json [NEW] dungeons\space\spacestation\quarters_row11a.json [NEW] dungeons\space\spacestation\quarters_row11b.json [NEW] dungeons\space\spacestation\quarters_row11c.json [NEW] dungeons\space\spacestation\quarters_row11d.json [NEW] dungeons\space\spacestation\quarters_row1a.json [NEW] dungeons\space\spacestation\quarters_row1b.json [NEW] dungeons\space\spacestation\quarters_row1c.json [NEW] dungeons\space\spacestation\quarters_row1d.json [NEW] dungeons\space\spacestation\quarters_row2a.json [NEW] dungeons\space\spacestation\quarters_row2b.json [NEW] dungeons\space\spacestation\quarters_row2c.json [NEW] dungeons\space\spacestation\quarters_row2d.json [NEW] dungeons\space\spacestation\quarters_row3a.json [NEW] dungeons\space\spacestation\quarters_row3b.json [NEW] dungeons\space\spacestation\quarters_row3c.json [NEW] dungeons\space\spacestation\quarters_row3d.json [NEW] dungeons\space\spacestation\quarters_row4a.json [NEW] dungeons\space\spacestation\quarters_row4b.json [NEW] dungeons\space\spacestation\quarters_row4c.json [NEW] dungeons\space\spacestation\quarters_row4d.json [NEW] dungeons\space\spacestation\quarters_row5a.json [NEW] dungeons\space\spacestation\quarters_row5b.json [NEW] dungeons\space\spacestation\quarters_row5c.json [NEW] dungeons\space\spacestation\quarters_row5d.json [NEW] dungeons\space\spacestation\quarters_row6a.json [NEW] dungeons\space\spacestation\quarters_row6b.json [NEW] dungeons\space\spacestation\quarters_row6c.json [NEW] dungeons\space\spacestation\quarters_row6d.json [NEW] dungeons\space\spacestation\quarters_row7a.json [NEW] dungeons\space\spacestation\quarters_row7b.json [NEW] dungeons\space\spacestation\quarters_row7c.json [NEW] dungeons\space\spacestation\quarters_row7d.json [NEW] dungeons\space\spacestation\quarters_row8a.json [NEW] dungeons\space\spacestation\quarters_row8b.json [NEW] dungeons\space\spacestation\quarters_row8c.json [NEW] dungeons\space\spacestation\quarters_row8d.json [NEW] dungeons\space\spacestation\quarters_row9a.json [NEW] dungeons\space\spacestation\quarters_row9b.json [NEW] dungeons\space\spacestation\quarters_row9c.json [NEW] dungeons\space\spacestation\quarters_row9d.json [NEW] dungeons\space\spacestation\quarters_top1.json [NEW] dungeons\space\spacestation\quarters_top2.json [NEW] dungeons\space\spacestation\quarters_top_long1a.json [NEW] dungeons\space\spacestation\quarters_top_long1b.json [NEW] dungeons\space\spacestation\quarters_top_long1c.json [NEW] dungeons\space\spacestation\quarters_top_long1d.json [NEW] dungeons\space\spacestation\room_template_bottom1.json [NEW] dungeons\space\spacestation\room_template_top1.json [NEW] dungeons\space\spacestation\spacestation.dungeon [NEW] dungeons\space\spacestation\spacestation_electronics.dungeon [NEW] dungeons\space\spacestation\spacestation_food.dungeon [NEW] dungeons\space\spacestation\spacestation_medical.dungeon [NEW] dungeons\space\spacestation\spacestation_weapons.dungeon [NEW] dungeons\space\spacestation\template_basic.json [NEW] dungeons\space\spacestation\trade_electronics_bottom1a.json [NEW] dungeons\space\spacestation\trade_electronics_bottom1b.json [NEW] dungeons\space\spacestation\trade_electronics_top1a.json [NEW] dungeons\space\spacestation\trade_electronics_top1b.json [NEW] dungeons\space\spacestation\trade_food_bottom1a.json [NEW] dungeons\space\spacestation\trade_food_bottom1b.json [NEW] dungeons\space\spacestation\trade_food_top1a.json [NEW] dungeons\space\spacestation\trade_food_top1b.json [NEW] dungeons\space\spacestation\trade_medical_bottom1a.json [NEW] dungeons\space\spacestation\trade_medical_bottom1b.json [NEW] dungeons\space\spacestation\trade_medical_top1a.json [NEW] dungeons\space\spacestation\trade_medical_top1b.json [NEW] dungeons\space\spacestation\trade_weapons_bottom1a.json [NEW] dungeons\space\spacestation\trade_weapons_bottom1b.json [NEW] dungeons\space\spacestation\trade_weapons_top1a.json [NEW] dungeons\space\spacestation\trade_weapons_top1b.json [NEW] dungeons\space\spacestation\tunnel_horizontal1a.json [NEW] dungeons\space\spacestation\tunnel_horizontal1b.json [NEW] dungeons\space\spacestation\tunnel_horizontal2a.json [NEW] dungeons\space\spacestation\tunnel_horizontal2b.json [NEW] dungeons\space\spacestation\tunnel_horizontal3a.json [NEW] dungeons\space\spacestation\tunnel_horizontal3b.json [NEW] dungeons\space\spacestation\tunnel_horizontal4a.json [NEW] dungeons\space\spacestation\tunnel_horizontal4b.json [NEW] dungeons\space\spacestation\tunnel_horizontal5a.json [NEW] dungeons\space\spacestation\tunnel_horizontal5b.json [NEW] dungeons\space\spacestation\tunnel_horizontal5c.json [NEW] dungeons\space\spacestation\tunnel_horizontal6a.json [NEW] interface\deploy.png [NEW] interface\deployhover.png [NEW] interface\bookmarks\icons\deploy.png [NEW] interface\bookmarks\icons\gasgiant.png [NEW] interface\bookmarks\icons\playerstation.png [NEW] interface\bookmarks\icons\spacestation.png [NEW] interface\cockpit\addbookmarkbutton.frames [NEW] interface\cockpit\addbookmarkbutton.png [NEW] interface\cockpit\bookmarksbutton.frames [NEW] interface\cockpit\bookmarksbutton.png [NEW] interface\cockpit\bookmarkswindow.png [NEW] interface\cockpit\cancelbutton.frames [NEW] interface\cockpit\cancelbutton.png [NEW] interface\cockpit\clusterinfobody.png [NEW] interface\cockpit\clusterinfobutton.frames [NEW] interface\cockpit\clusterinfobutton.png [NEW] interface\cockpit\clusterinfofooter.png [NEW] interface\cockpit\clusterinfoheader.png interface\cockpit\cockpit.config [NEW] interface\cockpit\cockpit.lua [NEW] interface\cockpit\cockpitutil.lua [NEW] interface\cockpit\cockpitview.lua interface\cockpit\consolebody.png [NEW] interface\cockpit\coordinatelabel.png [NEW] interface\cockpit\coordinatesbutton.frames [NEW] interface\cockpit\coordinatesbutton.png [NEW] interface\cockpit\coordinatesframe.png [NEW] interface\cockpit\coordinatetextbox.png [NEW] interface\cockpit\gobutton.frames [NEW] interface\cockpit\gobutton.png [NEW] interface\cockpit\gotoshipbutton.frames [NEW] interface\cockpit\gotoshipbutton.png [NEW] interface\cockpit\jumpbutton.frames [NEW] interface\cockpit\jumpbutton.png [NEW] interface\cockpit\jumpdialog.png [NEW] interface\cockpit\objectinfobody.png [NEW] interface\cockpit\objectinfofooter.png [NEW] interface\cockpit\objectinfoheader.png [NEW] interface\cockpit\planetinfobody.png [NEW] interface\cockpit\planetinfofooter.png [NEW] interface\cockpit\planetinfoheader.png interface\cockpit\positionmarker.png [NEW] interface\cockpit\questbutton.frames [NEW] interface\cockpit\questbutton.png [NEW] interface\cockpit\reticle.frames [NEW] interface\cockpit\reticle.png [NEW] interface\cockpit\systeminfobody.png [NEW] interface\cockpit\systeminfobutton.frames [NEW] interface\cockpit\systeminfobutton.png [NEW] interface\cockpit\systeminfofooter.png [NEW] interface\cockpit\systeminfoheader.png [NEW] interface\cockpit\planets\alien.png [NEW] interface\cockpit\planets\arctic.png [NEW] interface\cockpit\planets\asteroids_small1.png [NEW] interface\cockpit\planets\asteroids_small2.png [NEW] interface\cockpit\planets\asteroids_small3.png [NEW] interface\cockpit\planets\asteroids_small4.png [NEW] interface\cockpit\planets\asteroids_small5.png [NEW] interface\cockpit\planets\asteroids_small6.png [NEW] interface\cockpit\planets\asteroids_small7.png [NEW] interface\cockpit\planets\asteroids_small8.png [NEW] interface\cockpit\planets\barren.png [NEW] interface\cockpit\planets\desert.png [NEW] interface\cockpit\planets\forest.png [NEW] interface\cockpit\planets\garden.png [NEW] interface\cockpit\planets\gasgiant.png [NEW] interface\cockpit\planets\jungle.png [NEW] interface\cockpit\planets\magma.png [NEW] interface\cockpit\planets\midnight.png [NEW] interface\cockpit\planets\moon.png [NEW] interface\cockpit\planets\ocean.png [NEW] interface\cockpit\planets\savannah.png [NEW] interface\cockpit\planets\scorchedcity.png [NEW] interface\cockpit\planets\snow.png [NEW] interface\cockpit\planets\toxic.png [NEW] interface\cockpit\planets\tundra.png [NEW] interface\cockpit\planets\volcanic.png interface\confirmation\teleportconfirmation.config [NEW] interface\crafting\mechcraftingbody.png [NEW] interface\crafting\mechcraftingtable.png [NEW] interface\crafting\tabicon_mecharm.png [NEW] interface\crafting\tabicon_mechbody.png [NEW] interface\crafting\tabicon_mechbooster.png [NEW] interface\crafting\tabicon_mechlegs.png interface\easel\signstoregui.config interface\easel\signstoregui.lua [NEW] interface\expandstation\body.png [NEW] interface\expandstation\expandstation.config [NEW] interface\expandstation\expandstation.lua [NEW] interface\expandstation\expandstationicon.png [NEW] interface\expandstation\header.png [NEW] interface\expandstation\placebutton.png [NEW] interface\expandstation\placebuttonhover.png [NEW] interface\expandstation\tooltipbody.png interface\games\fossilgame\fossilgame.lua interface\games\fossilgame\fossilgamegui.config interface\games\fossilgame\level.lua interface\games\fossilgame\sprite.lua interface\games\fossilgame\tileset.lua interface\games\fossilgame\tools.lua [NEW] interface\itemdescriptions\mecharm.itemdescription [NEW] interface\itemdescriptions\mechbody.itemdescription [NEW] interface\itemdescriptions\mechbooster.itemdescription [NEW] interface\itemdescriptions\mechlegs.itemdescription [NEW] interface\placestation\configurebody.png [NEW] interface\placestation\configurebutton.png [NEW] interface\placestation\configurebuttonhover.png [NEW] interface\placestation\descbg.png [NEW] interface\placestation\namebg.png [NEW] interface\placestation\placestation.config [NEW] interface\placestation\placestation.lua [NEW] interface\placestation\savebutton.png [NEW] interface\placestation\savebuttonhover.png interface\scripted\cropshipper\cropshippergui.config [NEW] interface\scripted\goodstrader\body.png [NEW] interface\scripted\goodstrader\footer.png [NEW] interface\scripted\goodstrader\goodstradergui.config [NEW] interface\scripted\goodstrader\goodstradergui.lua [NEW] interface\scripted\goodstrader\header.png [NEW] interface\scripted\goodstrader\shine.png [NEW] interface\scripted\goodstrader\tradeitembg.png [NEW] interface\scripted\goodstrader\trading_field.png [NEW] interface\scripted\mechassembly\body.png [NEW] interface\scripted\mechassembly\disabledoverlay.png [NEW] interface\scripted\mechassembly\energy_bar.png [NEW] interface\scripted\mechassembly\footer.png [NEW] interface\scripted\mechassembly\header.png [NEW] interface\scripted\mechassembly\icon.png [NEW] interface\scripted\mechassembly\mechassemblygui.config [NEW] interface\scripted\mechassembly\mechassemblygui.lua [NEW] interface\scripted\mechassembly\mech_assembly.png [NEW] interface\scripted\mechassembly\missing_body.png [NEW] interface\scripted\mechassembly\missing_booster.png [NEW] interface\scripted\mechassembly\missing_larm.png [NEW] interface\scripted\mechassembly\missing_legs.png [NEW] interface\scripted\mechassembly\missing_rarm.png [NEW] interface\scripted\mechassembly\paintbar.png [NEW] interface\scripted\mechassembly\paintbar_default.png [NEW] interface\scripted\mechassembly\pickleft.png [NEW] interface\scripted\mechassembly\pickleftover.png [NEW] interface\scripted\mechassembly\pickright.png [NEW] interface\scripted\mechassembly\pickrightover.png [NEW] interface\scripted\mechassembly\status_red.png [NEW] interface\scripted\sbvn\body.png [NEW] interface\scripted\sbvn\footer.png [NEW] interface\scripted\sbvn\header.png [NEW] interface\scripted\sbvn\icon.png [NEW] interface\scripted\sbvn\readme.txt [NEW] interface\scripted\sbvn\sbvngui.config [NEW] interface\scripted\sbvn\sbvngui.lua [NEW] interface\scripted\sbvn\sbvnobject.lua [NEW] interface\scripted\sbvn\games\beautifulattempt\beautifulattempt.sbvn [NEW] interface\scripted\sbvn\games\beautifulattempt\bg_black.png [NEW] interface\scripted\sbvn\games\beautifulattempt\bg_end.png [NEW] interface\scripted\sbvn\games\beautifulattempt\bg_school.png [NEW] interface\scripted\sbvn\games\beautifulattempt\bg_shrine.png [NEW] interface\scripted\sbvn\games\beautifulattempt\bg_shrine2.png [NEW] interface\scripted\sbvn\games\beautifulattempt\bg_sky.png [NEW] interface\scripted\sbvn\games\beautifulattempt\continuehint.png [NEW] interface\scripted\sbvn\games\beautifulattempt\drawing.frames [NEW] interface\scripted\sbvn\games\beautifulattempt\drawing.png [NEW] interface\scripted\sbvn\games\beautifulattempt\girl_1.frames [NEW] interface\scripted\sbvn\games\beautifulattempt\girl_1.png [NEW] interface\scripted\sbvn\games\beautifulattempt\hockey_table.png [NEW] interface\scripted\sbvn\games\beautifulattempt\letter.frames [NEW] interface\scripted\sbvn\games\beautifulattempt\letter.png [NEW] interface\scripted\sbvn\games\beautifulattempt\textbox.png [NEW] interface\scripted\sbvn\games\beautifulattempt\title.png [NEW] interface\title\chardown.png [NEW] interface\title\charup.png interface\tooltips\armor.tooltip interface\tooltips\back.tooltip interface\tooltips\base.tooltip [NEW] interface\tooltips\bodyarmor.png [NEW] interface\tooltips\bodycapturepod.png [NEW] interface\tooltips\bodyfishingrod.png [NEW] interface\tooltips\bodymechpart.png interface\tooltips\bodyobject.png interface\tooltips\bow.tooltip interface\tooltips\container.tooltip interface\tooltips\door.tooltip interface\tooltips\eppaugment.tooltip interface\tooltips\filledcapturepod.tooltip interface\tooltips\fishingrod.tooltip interface\tooltips\fishingupgrade.tooltip interface\tooltips\fistweapon.tooltip interface\tooltips\food.tooltip interface\tooltips\footer.png [NEW] interface\tooltips\footermechpart.png [NEW] interface\tooltips\footerobject.png [NEW] interface\tooltips\footerobject2.png [NEW] interface\tooltips\footerobject3.png [NEW] interface\tooltips\footerobject4.png [NEW] interface\tooltips\footerobjectextended.png [NEW] interface\tooltips\footerobjects.png interface\tooltips\fossil.tooltip interface\tooltips\gun.tooltip [NEW] interface\tooltips\mecharm.tooltip [NEW] interface\tooltips\mechbody.tooltip [NEW] interface\tooltips\mechbooster.tooltip [NEW] interface\tooltips\mechlegs.tooltip interface\tooltips\mm.tooltip interface\tooltips\object.tooltip interface\tooltips\petcollar.tooltip interface\tooltips\seed.tooltip interface\tooltips\shield.tooltip interface\tooltips\staff.tooltip [NEW] interface\tooltips\statbar.frames [NEW] interface\tooltips\statbar.png interface\tooltips\sword.tooltip interface\tooltips\tool.tooltip interface\tooltips\vehicle.tooltip interface\warping\shipteleporter.config interface\windowconfig\charselection.config [NEW] interface\windowconfig\craftingmech.config interface\windowconfig\keybindingsmenu.config interface\windowconfig\teleportdialog.config items\categories.config items\active\effects\chain.lua items\active\fossil\fossilbrush.lua [NEW] items\active\randomblueprint\blueprintinhand.png [NEW] items\active\randomblueprint\default.frames [NEW] items\active\randomblueprint\mechblueprint3.activeitem [NEW] items\active\randomblueprint\mechblueprint3.png [NEW] items\active\randomblueprint\mechblueprint4.activeitem [NEW] items\active\randomblueprint\mechblueprint4.png [NEW] items\active\randomblueprint\mechblueprint5.activeitem [NEW] items\active\randomblueprint\mechblueprint5.png [NEW] items\active\randomblueprint\mechblueprint6.activeitem [NEW] items\active\randomblueprint\mechblueprint6.png [NEW] items\active\randomblueprint\randomblueprint.animation [NEW] items\active\randomblueprint\randomblueprint.lua [NEW] items\active\stationtransponder\stationtransponder.activeitem [NEW] items\active\stationtransponder\stationtransponder.animation [NEW] items\active\stationtransponder\stationtransponder.lua [NEW] items\active\stationtransponder\stationtransponder.png items\active\unsorted\filledcapturepod\npcpetcapturepod.lua items\active\unsorted\geode\geode.lua items\active\unsorted\penguincostume\penguincostume.lua items\active\unsorted\railplatform\railplatform.lua [NEW] items\active\unsorted\railplatform\stationtram.activeitem [NEW] items\active\unsorted\railplatform\stationtramicon.png [NEW] items\active\unsorted\railplatform\stationtrampreview.png items\active\unsorted\rewardbag\rewardbag.lua items\active\unsorted\superrewardbag\superrewardbag.lua items\active\vehiclecontroller\vehiclecontroller.lua items\active\weapons\boomerang\boomerang.lua items\active\weapons\fist\punch.lua items\active\weapons\fist\combofinishers\powerpunch.lua items\active\weapons\fist\combofinishers\snaproot.lua items\active\weapons\fist\combofinishers\uppercut.lua items\active\weapons\melee\abilities\broadsword\downstab\downstab.lua items\active\weapons\melee\abilities\broadsword\downstab\downstab.weaponability items\active\weapons\melee\abilities\broadsword\risingslash\risingslash.lua items\active\weapons\melee\abilities\broadsword\spinslash\superspinslash.lua items\active\weapons\melee\abilities\generic\blinkexplosion\blinkexplosion.lua items\active\weapons\melee\abilities\generic\blinkslash\blinkslash.lua items\active\weapons\melee\abilities\hammer\hammersmash.lua items\active\weapons\melee\abilities\hammer\hammersmash.weaponability items\active\weapons\melee\abilities\hammer\elementalpillar\elementalpillar.lua items\active\weapons\melee\abilities\hammer\groundslam\groundslam.lua items\active\weapons\melee\abilities\hammer\groundslam\groundslam.weaponability items\active\weapons\melee\abilities\hammer\shockwave\shockwave.lua items\active\weapons\npc\npcassaultrifle.activeitem items\active\weapons\npc\npcavianbroadsword.activeitem items\active\weapons\npc\npcaxe.activeitem items\active\weapons\npc\npcbow.activeitem items\active\weapons\npc\npcbroadsword.activeitem items\active\weapons\npc\npcbruisersword.activeitem items\active\weapons\npc\npccultistbroadsword.activeitem items\active\weapons\npc\npccultistshortsword.activeitem items\active\weapons\npc\npcdagger.activeitem items\active\weapons\npc\npcdeadbeatassaultrifle.activeitem items\active\weapons\npc\npcdeadbeataxe.activeitem items\active\weapons\npc\npceyesword.activeitem items\active\weapons\npc\npcfeneroxspear.activeitem items\active\weapons\npc\npcfirebow.activeitem items\active\weapons\npc\npcfloranassaultrifle.activeitem items\active\weapons\npc\npchammer.activeitem items\active\weapons\npc\npcmachinepistol.activeitem items\active\weapons\npc\npcpistol.activeitem items\active\weapons\npc\npcrocketlauncher.activeitem items\active\weapons\npc\npcshortsword.activeitem items\active\weapons\npc\npcshotgun.activeitem items\active\weapons\npc\npcsniperrifle.activeitem items\active\weapons\npc\npcspear.activeitem items\active\weapons\npc\npctungstenbow.activeitem items\active\weapons\npc\npcwrench.activeitem [NEW] items\active\weapons\other\drillspear\default.frames [NEW] items\active\weapons\other\drillspear\drillcharge.lua [NEW] items\active\weapons\other\drillspear\drillenergy.frames [NEW] items\active\weapons\other\drillspear\drillenergy.png [NEW] items\active\weapons\other\drillspear\drillspear.activeitem [NEW] items\active\weapons\other\drillspear\drillspear.animation [NEW] items\active\weapons\other\drillspear\drillspear.png [NEW] items\active\weapons\other\drillspear\drillspearstab.lua [NEW] items\active\weapons\other\drillspear\drillspear_fullbright.png [NEW] items\active\weapons\other\electrobaton\blade.frames [NEW] items\active\weapons\other\electrobaton\blade.png [NEW] items\active\weapons\other\electrobaton\blade_l6.frames [NEW] items\active\weapons\other\electrobaton\blade_l6.png [NEW] items\active\weapons\other\electrobaton\electrobaton.activeitem [NEW] items\active\weapons\other\electrobaton\electrobatonicon.png [NEW] items\active\weapons\other\electrobaton\electrobatonicon_l6.png [NEW] items\active\weapons\other\electrobaton\handle.png [NEW] items\active\weapons\other\electrobaton\handle_l6.png items\active\weapons\other\fireworkgun\fireworkgun.activeitem items\active\weapons\other\magnorbs\magnorbs.lua [NEW] items\active\weapons\ranged\unrand\raygun\muzzleflash.frames [NEW] items\active\weapons\ranged\unrand\raygun\muzzleflash.png [NEW] items\active\weapons\ranged\unrand\raygun\raygun.activeitem [NEW] items\active\weapons\ranged\unrand\raygun\raygun.png [NEW] items\active\weapons\ranged\unrand\raygun\raygun_l6.png [NEW] items\active\weapons\ranged\unrand\spaceplasmarifle\muzzleflash.frames [NEW] items\active\weapons\ranged\unrand\spaceplasmarifle\muzzleflash.png [NEW] items\active\weapons\ranged\unrand\spaceplasmarifle\spaceplasmarifle.activeitem [NEW] items\active\weapons\ranged\unrand\spaceplasmarifle\spaceplasmarifle.frames [NEW] items\active\weapons\ranged\unrand\spaceplasmarifle\spaceplasmarifle.png [NEW] items\active\weapons\ranged\unrand\spaceplasmarifle\spaceplasmariflefullbright.frames [NEW] items\active\weapons\ranged\unrand\spaceplasmarifle\spaceplasmariflefullbright.png items\armors\backitems\parachutepack\parachutepack.back items\armors\biome\jungle\tough\tough.chest items\armors\biome\jungle\tough\tough.legs items\armors\biome\midnight\dark\dark.head items\armors\biome\midnight\dark\dark.legs items\armors\biome\midnight\dark\darkchest.chest items\armors\decorative\costumes\fairy\fairy.back [NEW] items\armors\decorative\costumes\premier\bsleeve.png [NEW] items\armors\decorative\costumes\premier\chest.png [NEW] items\armors\decorative\costumes\premier\fsleeve.png [NEW] items\armors\decorative\costumes\premier\head.png [NEW] items\armors\decorative\costumes\premier\icons.png [NEW] items\armors\decorative\costumes\premier\mask.png [NEW] items\armors\decorative\costumes\premier\pants.png [NEW] items\armors\decorative\costumes\premier\premier.chest [NEW] items\armors\decorative\costumes\premier\premier.head [NEW] items\armors\decorative\costumes\premier\premier.legs items\armors\decorative\costumes\startrack\chestf.png [NEW] items\armors\decorative\hats\industrialcrew\head.png [NEW] items\armors\decorative\hats\industrialcrew\icons.png [NEW] items\armors\decorative\hats\industrialcrew\industrialcrew.head [NEW] items\armors\decorative\hats\industrialcrew\mask.png [NEW] items\armors\decorative\hats\ladyhat\ladyhathead.head [NEW] items\armors\decorative\hats\mechpilot\head.png [NEW] items\armors\decorative\hats\mechpilot\icons.png [NEW] items\armors\decorative\hats\mechpilot\mask.png [NEW] items\armors\decorative\hats\mechpilot\mechpilot.head [NEW] items\armors\decorative\hats\spacebird\head.png [NEW] items\armors\decorative\hats\spacebird\icons.png [NEW] items\armors\decorative\hats\spacebird\mask.png [NEW] items\armors\decorative\hats\spacebird\spacebird.head [NEW] items\armors\decorative\hats\tophat\tophathead.head [NEW] items\armors\decorative\hats\toptophat\toptophathead.head items\armors\other\bonusarmor\bonusarmor.chest items\armors\other\bonusarmor\bonusarmor.head items\armors\other\bonusarmor\bonusarmor.legs items\armors\other\perfect\perfect.chest items\armors\other\perfect\perfect.head items\armors\other\perfect\perfect.legs [NEW] items\armors\penguin\penguinbandana\icons.png [NEW] items\armors\penguin\penguinbandana\pants.frames [NEW] items\armors\penguin\penguinbandana\pants.png [NEW] items\armors\penguin\penguinbandana\penguinbandana.legs [NEW] items\armors\penguin\penguinberet\icons.png [NEW] items\armors\penguin\penguinberet\pants.frames [NEW] items\armors\penguin\penguinberet\pants.png [NEW] items\armors\penguin\penguinberet\penguinberet.legs [NEW] items\armors\penguin\penguincowboy\icons.png [NEW] items\armors\penguin\penguincowboy\pants.frames [NEW] items\armors\penguin\penguincowboy\pants.png [NEW] items\armors\penguin\penguincowboy\penguincowboy.legs [NEW] items\armors\penguin\penguinglasses\icons.png [NEW] items\armors\penguin\penguinglasses\pants.frames [NEW] items\armors\penguin\penguinglasses\pants.png [NEW] items\armors\penguin\penguinglasses\penguinglasses.legs [NEW] items\armors\penguin\penguinhelmet\icons.png [NEW] items\armors\penguin\penguinhelmet\pants.frames [NEW] items\armors\penguin\penguinhelmet\pants.png [NEW] items\armors\penguin\penguinhelmet\penguinhelmet.legs [NEW] items\armors\penguin\penguinscanner\icons.png [NEW] items\armors\penguin\penguinscanner\pants.frames [NEW] items\armors\penguin\penguinscanner\pants.png [NEW] items\armors\penguin\penguinscanner\penguinscanner.legs [NEW] items\armors\penguin\penguinvikinghat\icons.png [NEW] items\armors\penguin\penguinvikinghat\pants.frames [NEW] items\armors\penguin\penguinvikinghat\pants.png [NEW] items\armors\penguin\penguinvikinghat\penguinvikinghat.legs [NEW] items\buildscripts\buildmechpart.lua items\generic\crafting\cellmatter.item items\generic\food\tier3\pineapplejam.consumable [NEW] items\generic\mechparts\arm\mecharmbeamdrill.item [NEW] items\generic\mechparts\arm\mecharmbeamdrill.png [NEW] items\generic\mechparts\arm\mecharmbeamsniper.item [NEW] items\generic\mechparts\arm\mecharmbeamsniper.png [NEW] items\generic\mechparts\arm\mecharmcannon.item [NEW] items\generic\mechparts\arm\mecharmcannon.png [NEW] items\generic\mechparts\arm\mecharmchainsaw.item [NEW] items\generic\mechparts\arm\mecharmchainsaw.png [NEW] items\generic\mechparts\arm\mecharmclustermine.item [NEW] items\generic\mechparts\arm\mecharmclustermine.png [NEW] items\generic\mechparts\arm\mecharmdespawn.item [NEW] items\generic\mechparts\arm\mecharmdrill.item [NEW] items\generic\mechparts\arm\mecharmdrill.png [NEW] items\generic\mechparts\arm\mecharmdualrifle.item [NEW] items\generic\mechparts\arm\mecharmdualrifle.png [NEW] items\generic\mechparts\arm\mecharmenergyblade.item [NEW] items\generic\mechparts\arm\mecharmenergyblade.png [NEW] items\generic\mechparts\arm\mecharmenergyrifle.item [NEW] items\generic\mechparts\arm\mecharmenergyrifle.png [NEW] items\generic\mechparts\arm\mecharmflakcannon.item [NEW] items\generic\mechparts\arm\mecharmflakcannon.png [NEW] items\generic\mechparts\arm\mecharmgatling.item [NEW] items\generic\mechparts\arm\mecharmgatling.png [NEW] items\generic\mechparts\arm\mecharmgravitymine.item [NEW] items\generic\mechparts\arm\mecharmgravitymine.png [NEW] items\generic\mechparts\arm\mecharmguidedmissiles.item [NEW] items\generic\mechparts\arm\mecharmguidedmissiles.png [NEW] items\generic\mechparts\arm\mecharmharpoon.png [NEW] items\generic\mechparts\arm\mecharmheatrifle.item [NEW] items\generic\mechparts\arm\mecharmheatrifle.png [NEW] items\generic\mechparts\arm\mecharmhomingmissile.item [NEW] items\generic\mechparts\arm\mecharmhomingmissile.png [NEW] items\generic\mechparts\arm\mecharmmissilerack.item [NEW] items\generic\mechparts\arm\mecharmmissilerack.png [NEW] items\generic\mechparts\arm\mecharmmultidrone.item [NEW] items\generic\mechparts\arm\mecharmmultidrone.png [NEW] items\generic\mechparts\arm\mecharmplasmadrone.item [NEW] items\generic\mechparts\arm\mecharmplasmadrone.png [NEW] items\generic\mechparts\arm\mecharmshielddrone.item [NEW] items\generic\mechparts\arm\mecharmshielddrone.png [NEW] items\generic\mechparts\arm\mecharmspikefist.item [NEW] items\generic\mechparts\arm\mecharmspikefist.png [NEW] items\generic\mechparts\arm\mecharmsplitshot.item [NEW] items\generic\mechparts\arm\mecharmsplitshot.png [NEW] items\generic\mechparts\arm\mecharmteslastream.item [NEW] items\generic\mechparts\arm\mecharmteslastream.png [NEW] items\generic\mechparts\arm\mecharmtommygun.item [NEW] items\generic\mechparts\arm\mecharmtommygun.png [NEW] items\generic\mechparts\arm\mecharmwobbleshot.item [NEW] items\generic\mechparts\arm\mecharmwobbleshot.png [NEW] items\generic\mechparts\body\mechbodyapex.item [NEW] items\generic\mechparts\body\mechbodyapex.png [NEW] items\generic\mechparts\body\mechbodyapexproto.item [NEW] items\generic\mechparts\body\mechbodyapexproto.png [NEW] items\generic\mechparts\body\mechbodyavian.item [NEW] items\generic\mechparts\body\mechbodyavian.png [NEW] items\generic\mechparts\body\mechbodyavianproto.item [NEW] items\generic\mechparts\body\mechbodyavianproto.png [NEW] items\generic\mechparts\body\mechbodybad.item [NEW] items\generic\mechparts\body\mechbodybad.png [NEW] items\generic\mechparts\body\mechbodycultist.item [NEW] items\generic\mechparts\body\mechbodycultist.png [NEW] items\generic\mechparts\body\mechbodycultist2.item [NEW] items\generic\mechparts\body\mechbodycultist2.png [NEW] items\generic\mechparts\body\mechbodyexodus.item [NEW] items\generic\mechparts\body\mechbodyexodus.png [NEW] items\generic\mechparts\body\mechbodyfloran.item [NEW] items\generic\mechparts\body\mechbodyfloran.png [NEW] items\generic\mechparts\body\mechbodyfloranproto.item [NEW] items\generic\mechparts\body\mechbodyfloranproto.png [NEW] items\generic\mechparts\body\mechbodyglitch.item [NEW] items\generic\mechparts\body\mechbodyglitch.png [NEW] items\generic\mechparts\body\mechbodyglitchproto.item [NEW] items\generic\mechparts\body\mechbodyglitchproto.png [NEW] items\generic\mechparts\body\mechbodyhero.item [NEW] items\generic\mechparts\body\mechbodyhero.png [NEW] items\generic\mechparts\body\mechbodyhuman.item [NEW] items\generic\mechparts\body\mechbodyhuman.png [NEW] items\generic\mechparts\body\mechbodyhumanproto.item [NEW] items\generic\mechparts\body\mechbodyhumanproto.png [NEW] items\generic\mechparts\body\mechbodyhylotl.item [NEW] items\generic\mechparts\body\mechbodyhylotl.png [NEW] items\generic\mechparts\body\mechbodyhylotlproto.item [NEW] items\generic\mechparts\body\mechbodyhylotlproto.png [NEW] items\generic\mechparts\body\mechbodyiris.item [NEW] items\generic\mechparts\body\mechbodyiris.png [NEW] items\generic\mechparts\body\mechbodymilitary.item [NEW] items\generic\mechparts\body\mechbodymilitary.png [NEW] items\generic\mechparts\body\mechbodyminiknog.item [NEW] items\generic\mechparts\body\mechbodyminiknog.png [NEW] items\generic\mechparts\body\mechbodynovakid.item [NEW] items\generic\mechparts\body\mechbodynovakid.png [NEW] items\generic\mechparts\body\mechbodynovakidproto.item [NEW] items\generic\mechparts\body\mechbodynovakidproto.png [NEW] items\generic\mechparts\body\mechbodypenguin.item [NEW] items\generic\mechparts\body\mechbodypenguin.png [NEW] items\generic\mechparts\body\mechbodypirate.item [NEW] items\generic\mechparts\body\mechbodypirate.png [NEW] items\generic\mechparts\body\mechbodyprotector.item [NEW] items\generic\mechparts\body\mechbodyprotector.png [NEW] items\generic\mechparts\body\mechbodyreactor.item [NEW] items\generic\mechparts\body\mechbodyreactor.png [NEW] items\generic\mechparts\body\mechbodyshark.item [NEW] items\generic\mechparts\body\mechbodyshark.png [NEW] items\generic\mechparts\body\mechbodyskull.item [NEW] items\generic\mechparts\body\mechbodyskull.png [NEW] items\generic\mechparts\booster\mechboosterastro.item [NEW] items\generic\mechparts\booster\mechboosterastro.png [NEW] items\generic\mechparts\booster\mechboostergallant.item [NEW] items\generic\mechparts\booster\mechboostergallant.png [NEW] items\generic\mechparts\booster\mechboosterhammer.item [NEW] items\generic\mechparts\booster\mechboosterhammer.png [NEW] items\generic\mechparts\booster\mechboostersimple.item [NEW] items\generic\mechparts\booster\mechboostersimple.png [NEW] items\generic\mechparts\booster\mechboostersleek.item [NEW] items\generic\mechparts\booster\mechboostersleek.png [NEW] items\generic\mechparts\booster\mechboosterstalwart.item [NEW] items\generic\mechparts\booster\mechboosterstalwart.png [NEW] items\generic\mechparts\booster\mechboosterzed.item [NEW] items\generic\mechparts\booster\mechboosterzed.png [NEW] items\generic\mechparts\booster\mechboosterzero.item [NEW] items\generic\mechparts\booster\mechboosterzero.png [NEW] items\generic\mechparts\horn\mechhornairhorn.item [NEW] items\generic\mechparts\horn\mechhornairhorn.png [NEW] items\generic\mechparts\horn\mechhornbull.item [NEW] items\generic\mechparts\horn\mechhornbull.png [NEW] items\generic\mechparts\horn\mechhorncharge.item [NEW] items\generic\mechparts\horn\mechhorncharge.png [NEW] items\generic\mechparts\horn\mechhornclownhorn.item [NEW] items\generic\mechparts\horn\mechhornclownhorn.png [NEW] items\generic\mechparts\horn\mechhornfoghorn.item [NEW] items\generic\mechparts\horn\mechhornfoghorn.png [NEW] items\generic\mechparts\horn\mechhornsteamwhistle.item [NEW] items\generic\mechparts\horn\mechhornsteamwhistle.png [NEW] items\generic\mechparts\horn\mechhorntrain.item [NEW] items\generic\mechparts\horn\mechhorntrain.png [NEW] items\generic\mechparts\legs\mechlegsarc.item [NEW] items\generic\mechparts\legs\mechlegsarc.png [NEW] items\generic\mechparts\legs\mechlegshermes.item [NEW] items\generic\mechparts\legs\mechlegshermes.png [NEW] items\generic\mechparts\legs\mechlegshopper.item [NEW] items\generic\mechparts\legs\mechlegshopper.png [NEW] items\generic\mechparts\legs\mechlegsintrepid.item [NEW] items\generic\mechparts\legs\mechlegsintrepid.png [NEW] items\generic\mechparts\legs\mechlegsronin.item [NEW] items\generic\mechparts\legs\mechlegsronin.png [NEW] items\generic\mechparts\legs\mechlegssimple.item [NEW] items\generic\mechparts\legs\mechlegssimple.png [NEW] items\generic\mechparts\legs\mechlegssleek.item [NEW] items\generic\mechparts\legs\mechlegssleek.png [NEW] items\generic\mechparts\legs\mechlegstwinjet.item [NEW] items\generic\mechparts\legs\mechlegstwinjet.png [NEW] items\generic\salvage\salvagearm.item [NEW] items\generic\salvage\salvagearm.png [NEW] items\generic\salvage\salvagebody.item [NEW] items\generic\salvage\salvagebody.png [NEW] items\generic\salvage\salvagebooster.item [NEW] items\generic\salvage\salvagebooster.png [NEW] items\generic\salvage\salvagelegs.item [NEW] items\generic\salvage\salvagelegs.png [NEW] items\generic\salvage\salvagetier4.item [NEW] items\generic\salvage\salvagetier4.png [NEW] items\generic\salvage\salvagetier5.item [NEW] items\generic\salvage\salvagetier5.png [NEW] items\generic\salvage\salvagetier6.item [NEW] items\generic\salvage\salvagetier6.png [NEW] items\generic\tradegoods\electronicgoods.item [NEW] items\generic\tradegoods\electronicgoods.png [NEW] items\generic\tradegoods\foodgoods.item [NEW] items\generic\tradegoods\foodgoods.png [NEW] items\generic\tradegoods\medicalgoods.item [NEW] items\generic\tradegoods\medicalgoods.png [NEW] items\generic\tradegoods\militarygoods.item [NEW] items\generic\tradegoods\militarygoods.png [NEW] items\instruments\spaceorgan.instrument [NEW] items\instruments\spaceorgan.png [NEW] items\instruments\spaceorganicon.png [NEW] items\instruments\squareorgan.instrument [NEW] items\instruments\squarewave.png [NEW] items\instruments\squarewaveicon.png items\materials\outposticon.png items\materials\platinumblock.matitem [NEW] items\materials\slopedhullpanel.matitem [NEW] items\materials\slopedhullpanel.png [NEW] items\materials\slopedinsetpanel.matitem [NEW] items\materials\slopedinsetpanel.png [NEW] items\materials\slopedrustypanel.matitem [NEW] items\materials\slopedrustypanel.png [NEW] items\materials\slopedscrappanel.matitem [NEW] items\materials\slopedscrappanel.png items\throwables\thorngrenade.thrownitem leveling\levelingmultipliers.functions [NEW] leveling\mechstats.functions monsters\groundMovement.lua monsters\monster.lua monsters\boss\bossMonster.lua monsters\boss\apebossprojector\apebossprojector.lua monsters\boss\guardianboss\guardian.lua monsters\boss\guardianminion\collidingminion.monstertype monsters\boss\guardianminion\guardianminion.lua monsters\boss\robotboss\robot\robotbody.png monsters\bugs\bug.lua monsters\bugs\ashsprite\ashsprite.monstertype monsters\bugs\aurorabee\aurorabee.monstertype monsters\bugs\beebug\beebug.monstertype monsters\bugs\blueback\blueback.monstertype monsters\bugs\brightstripe\brightstripe.monstertype monsters\bugs\butterbee\butterbee.monstertype monsters\bugs\cinderfly\cinderfly.monstertype monsters\bugs\dewhopper\dewhopper.monstertype monsters\bugs\driftbell\driftbell.monstertype monsters\bugs\dustmoth\dustmoth.monstertype monsters\bugs\fawnfly\fawnfly.monstertype monsters\bugs\fireflyspawner\fireflyspawner.monstertype monsters\bugs\fireygiant\fireygiant.monstertype monsters\bugs\flameroach\flameroach.monstertype monsters\bugs\flyspawner\flyspawner.monstertype monsters\bugs\frostfleck\frostfleck.monstertype monsters\bugs\frostfly\frostfly.monstertype monsters\bugs\gasgiant\gasgiant.monstertype monsters\bugs\glowbug\glowbug.monstertype monsters\bugs\goldbuck\goldbuck.monstertype monsters\bugs\greentip\greentip.monstertype monsters\bugs\heathugger\heathugger.monstertype monsters\bugs\hivehog\hivehog.monstertype monsters\bugs\icetip\icetip.monstertype monsters\bugs\lavahopper\lavahopper.monstertype monsters\bugs\muddancer\muddancer.monstertype monsters\bugs\mudstag\mudstag.monstertype monsters\bugs\orphanfly\orphanfly.monstertype monsters\bugs\phoenixfly\phoenixfly.monstertype monsters\bugs\polarmoth\polarmoth.monstertype monsters\bugs\redwing\redwing.monstertype monsters\bugs\sandclown\sandclown.monstertype monsters\bugs\scuttleploom\scuttleploom.monstertype monsters\bugs\seahornet\seahornet.monstertype monsters\bugs\shadowmoth\shadowmoth.monstertype monsters\bugs\shardwing\shardwing.monstertype monsters\bugs\shellcreep\shellcreep.monstertype monsters\bugs\snowskater\snowskater.monstertype monsters\bugs\stinkjack\stinkjack.monstertype monsters\bugs\sunskipper\sunskipper.monstertype monsters\bugs\thornbee\thornbee.monstertype monsters\bugs\tidefly\tidefly.monstertype monsters\bugs\vineclimber\vineclimber.monstertype monsters\bugs\wavebird\wavebird.monstertype monsters\bugs\xenofly\xenofly.monstertype monsters\crawlers\crustoise\crustoise.monstertype monsters\crawlers\oculob\oculob.monstertype monsters\crawlers\pulpin\pulpin.monstertype monsters\crawlers\tintic\tintic.monstertype [NEW] monsters\crawlers\triplod\triplod-full.frames [NEW] monsters\crawlers\triplod\triplod-full.png monsters\crawlers\triplod\triplod.monstertype monsters\dungeon\apexbrainmutant\apexbrainmutant.monstertype monsters\dungeon\giftmonster\behavior.lua monsters\dungeon\glitchspider\glitchspider.monstertype monsters\dungeon\po\behavior.lua monsters\dungeon\pogolem\pogolem.monstertype monsters\flyers\bobfae\bobfae.monstertype [NEW] monsters\flyers\parasprite\parasprite.animation [NEW] monsters\flyers\parasprite\parasprite.frames [NEW] monsters\flyers\parasprite\parasprite.monstertype [NEW] monsters\flyers\parasprite\parasprite.png [NEW] monsters\flyers\parasprite\paraspritebody.monsterpart [NEW] monsters\flyers\parasprite\parasprite_baby.png [NEW] monsters\flyers\parasprite\shards1.png [NEW] monsters\flyers\parasprite\shards2.png [NEW] monsters\flyers\parasprite\shards3.png [NEW] monsters\flyers\parasprite\shards4.png monsters\flyers\paratail\paratail.monstertype monsters\flyers\pteropod\pteropod.monstertype monsters\flyers\scandroid\scandroid.monstertype monsters\flyers\tentaclebomb\tentaclebomb.monstertype monsters\generated\swimming\swimmingMonster.lua monsters\generated\swimming\smallfish\smallFish.lua monsters\ghosts\ignome\ignome.monstertype monsters\ghosts\pyromantle\pyromantle.monstertype monsters\ghosts\tentacleghost\tentacleghost.monstertype monsters\ghosts\wisper\wisper.monstertype [NEW] monsters\mechdrone\drone.lua [NEW] monsters\mechdrone\drone_status.lua [NEW] monsters\mechdrone\multidrone\body.monsterpart [NEW] monsters\mechdrone\multidrone\body.png [NEW] monsters\mechdrone\multidrone\body_fullbright.png [NEW] monsters\mechdrone\multidrone\default.frames [NEW] monsters\mechdrone\multidrone\mechmultidrone.animation [NEW] monsters\mechdrone\multidrone\mechmultidrone.monstertype [NEW] monsters\mechdrone\plasmadrone\body.monsterpart [NEW] monsters\mechdrone\plasmadrone\body.png [NEW] monsters\mechdrone\plasmadrone\body_fullbright.png [NEW] monsters\mechdrone\plasmadrone\default.frames [NEW] monsters\mechdrone\plasmadrone\mechplasmadrone.animation [NEW] monsters\mechdrone\plasmadrone\mechplasmadrone.monstertype [NEW] monsters\mechdrone\shielddrone\body.monsterpart [NEW] monsters\mechdrone\shielddrone\body.png [NEW] monsters\mechdrone\shielddrone\body_fullbright.png [NEW] monsters\mechdrone\shielddrone\default.frames [NEW] monsters\mechdrone\shielddrone\mechshielddrone.animation [NEW] monsters\mechdrone\shielddrone\mechshielddrone.monstertype monsters\mission\kluexsentry\kluexsentry.monstertype monsters\mission\moontant\moontant.monstertype monsters\pets\groundPet.lua [NEW] monsters\space\astrofae\astrofae.animation [NEW] monsters\space\astrofae\astrofae.frames [NEW] monsters\space\astrofae\astrofae.lua [NEW] monsters\space\astrofae\astrofae.monstertype [NEW] monsters\space\astrofae\astrofae.png [NEW] monsters\space\astrofae\body.monsterpart [NEW] monsters\space\chiropterror\body.monsterpart [NEW] monsters\space\chiropterror\chiropterror.animation [NEW] monsters\space\chiropterror\chiropterror.monstertype [NEW] monsters\space\chiropterror\chiropterror.png [NEW] monsters\space\chiropterror\chiropterrorfullbright.png [NEW] monsters\space\chiropterror\default.frames [NEW] monsters\space\cosmostache\body.monsterpart [NEW] monsters\space\cosmostache\cosmostache.animation [NEW] monsters\space\cosmostache\cosmostache.monstertype [NEW] monsters\space\cosmostache\cosmostache.png [NEW] monsters\space\cosmostache\cosmostachefullbright.png [NEW] monsters\space\cosmostache\default.frames [NEW] monsters\space\heavydrone\heavydrone.animation [NEW] monsters\space\heavydrone\heavydrone.lua [NEW] monsters\space\heavydrone\heavydrone.monstertype [NEW] monsters\space\heavydrone\heavydrone.partparams [NEW] monsters\space\heavydrone\body\body1.monsterpart [NEW] monsters\space\heavydrone\body\body1.png [NEW] monsters\space\heavydrone\body\body1front.png [NEW] monsters\space\heavydrone\body\body1fullbright.png [NEW] monsters\space\heavydrone\body\body2.monsterpart [NEW] monsters\space\heavydrone\body\body2.png [NEW] monsters\space\heavydrone\body\body2front.png [NEW] monsters\space\heavydrone\body\body3.monsterpart [NEW] monsters\space\heavydrone\body\body3.png [NEW] monsters\space\heavydrone\body\body3front.png [NEW] monsters\space\heavydrone\body\body4.monsterpart [NEW] monsters\space\heavydrone\body\body4.png [NEW] monsters\space\heavydrone\body\body4front.png [NEW] monsters\space\heavydrone\body\body5.monsterpart [NEW] monsters\space\heavydrone\body\body5.png [NEW] monsters\space\heavydrone\body\body5front.png [NEW] monsters\space\heavydrone\body\default.frames [NEW] monsters\space\heavydrone\face\default.frames [NEW] monsters\space\heavydrone\face\face1.monsterpart [NEW] monsters\space\heavydrone\face\face1.png [NEW] monsters\space\heavydrone\face\face2.monsterpart [NEW] monsters\space\heavydrone\face\face2.png [NEW] monsters\space\heavydrone\face\face3.monsterpart [NEW] monsters\space\heavydrone\face\face3.png [NEW] monsters\space\heavydrone\face\face4.monsterpart [NEW] monsters\space\heavydrone\face\face4.png [NEW] monsters\space\heavydrone\face\face5.monsterpart [NEW] monsters\space\heavydrone\face\face5.png [NEW] monsters\space\heavydrone\gun\backgun1.monsterpart [NEW] monsters\space\heavydrone\gun\default.frames [NEW] monsters\space\heavydrone\gun\frontgun1.monsterpart [NEW] monsters\space\heavydrone\gun\gun1.png [NEW] monsters\space\heavydrone\gun\gun1fullbright.png [NEW] monsters\space\masteroid\body.monsterpart [NEW] monsters\space\masteroid\default.frames [NEW] monsters\space\masteroid\masteroid.animation [NEW] monsters\space\masteroid\masteroid.monstertype [NEW] monsters\space\masteroid\masteroid.png [NEW] monsters\space\masteroid\masteroidfullbright.png [NEW] monsters\space\masteroid\orbiter1.png [NEW] monsters\space\masteroid\orbiter2.png [NEW] monsters\space\masteroidlarge\body.monsterpart [NEW] monsters\space\masteroidlarge\default.frames [NEW] monsters\space\masteroidlarge\masteroidlarge.animation [NEW] monsters\space\masteroidlarge\masteroidlarge.monstertype [NEW] monsters\space\masteroidlarge\masteroidlarge.png [NEW] monsters\space\masteroidlarge\masteroidlargefullbright.png [NEW] monsters\space\masteroidmid\body.monsterpart [NEW] monsters\space\masteroidmid\default.frames [NEW] monsters\space\masteroidmid\masteroidmid.animation [NEW] monsters\space\masteroidmid\masteroidmid.monstertype [NEW] monsters\space\masteroidmid\masteroidmid.png [NEW] monsters\space\masteroidmid\masteroidmidfullbright.png [NEW] monsters\space\omnicannon\body.frames [NEW] monsters\space\omnicannon\body.monsterpart [NEW] monsters\space\omnicannon\body.png [NEW] monsters\space\omnicannon\default.frames [NEW] monsters\space\omnicannon\omnicannon.animation [NEW] monsters\space\omnicannon\omnicannon.monstertype [NEW] monsters\space\omnicannon\turret.png [NEW] monsters\space\omnicannon\turretfullbright.png [NEW] monsters\space\rustick\beam.png [NEW] monsters\space\rustick\body.monsterpart [NEW] monsters\space\rustick\default.frames [NEW] monsters\space\rustick\rustick.animation [NEW] monsters\space\rustick\rustick.monstertype [NEW] monsters\space\rustick\rustick.png [NEW] monsters\space\rustick\rustickfullbright.png [NEW] monsters\space\spinemine\body.monsterpart [NEW] monsters\space\spinemine\default.frames [NEW] monsters\space\spinemine\spinemine.animation [NEW] monsters\space\spinemine\spinemine.monstertype [NEW] monsters\space\spinemine\spinemine.png [NEW] monsters\space\spinemine\spineminefullbright.png [NEW] monsters\space\trifangle\body.monsterpart [NEW] monsters\space\trifangle\default.frames [NEW] monsters\space\trifangle\trifangle.animation [NEW] monsters\space\trifangle\trifangle.monstertype [NEW] monsters\space\trifangle\trifangle.png [NEW] monsters\space\trifangle\trifanglefullbright.png [NEW] monsters\space\twigun\body.monsterpart [NEW] monsters\space\twigun\body.png [NEW] monsters\space\twigun\bodyfullbright.png [NEW] monsters\space\twigun\default.frames [NEW] monsters\space\twigun\turret.png [NEW] monsters\space\twigun\twigun.animation [NEW] monsters\space\twigun\twigun.monstertype monsters\walkers\adultpoptop\motherpoptop.monstertype monsters\walkers\anglure\anglure.monstertype monsters\walkers\crabcano\crabcano.monstertype monsters\walkers\crutter\crutter.monstertype monsters\walkers\fennix\fennix.monstertype monsters\walkers\mandraflora\mandraflora.monstertype monsters\walkers\miasmop\miasmop.monstertype monsters\walkers\nutmidge\nutmidge.monstertype monsters\walkers\orbide\orbide.monstertype monsters\walkers\pipkin\pipkin.monstertype monsters\walkers\scaveran\scaveran.monstertype monsters\walkers\smoglin\smoglin.monstertype monsters\walkers\snaunt\snaunt.monstertype monsters\walkers\snuffish\snuffish.monstertype monsters\walkers\sporgus\sporgus.monstertype monsters\walkers\voltip\voltip.monstertype [NEW] music\atlas-8bit.ogg npcs\bmain.lua [NEW] npcs\goodstrader.lua npcs\merchantpools.config npcs\crew\crewmemberpenguinmerc.npctype npcs\mission\penguinscientist.npctype [NEW] npcs\outpost\outpostpenguinscientist.npctype [NEW] npcs\space\astrocrewmate.npctype [NEW] npcs\space\electronicgoodstrader.npctype [NEW] npcs\space\foodgoodstrader.npctype [NEW] npcs\space\industrialcrewmate.npctype [NEW] npcs\space\letheiamerchant.npctype [NEW] npcs\space\medicalgoodstrader.npctype [NEW] npcs\space\militarygoodstrader.npctype [NEW] npcs\space\poptopfarmer.npctype [NEW] npcs\space\researchcrewmate.npctype [NEW] npcs\space\researchscientist.npctype [NEW] npcs\space\seedmerchant.npctype [NEW] npcs\space\spaceengineer.npctype [NEW] npcs\space\spacemerchant.npctype [NEW] npcs\space\spacevillager.npctype [NEW] npcs\space\transpondervendor.npctype [NEW] npcs\tenants\evilglitchtenant.npctype [NEW] npcs\tenants\space\astrotenant.npctype [NEW] npcs\tenants\space\industrialtenant.npctype [NEW] npcs\tenants\space\spaceguardtenant.npctype [NEW] npcs\tenants\space\spacehero.npctype [NEW] npcs\tenants\space\stationtenant.npctype [NEW] objects\actionfigure\parasprite\paraspriteaf.frames [NEW] objects\actionfigure\parasprite\paraspriteaf.object [NEW] objects\actionfigure\parasprite\paraspriteaf.png objects\ancientvault\weaponupgradeanvil\icon.png objects\apex\apexapesign\apexapesign.frames objects\apex\apexapesign\apexapesign.object objects\apex\apexcoolcomputer\apexcoolcomputer.object objects\apex\apexstoragelocker\apexstoragelocker.object [NEW] objects\apex\classicbowl\classicbowl.frames [NEW] objects\apex\classicbowl\classicbowl.object [NEW] objects\apex\classicbowl\classicbowl.png [NEW] objects\apex\classicbowl\classicbowlicon.png objects\apex\classicglass\classicglass.object [NEW] objects\apex\classicmug\classicmug.frames [NEW] objects\apex\classicmug\classicmug.object [NEW] objects\apex\classicmug\classicmug.png [NEW] objects\apex\classicmug\classicmugicon.png objects\apex\classicplate\classicplate.object objects\apex\securitycamera\securitycamera.lua objects\apex\turret\turret.lua objects\avian\avianstoragelocker\avianstoragelocker.object objects\avian\screen1\screen1.png objects\avian\screen1\screen1lit.png objects\avian\screen2\screen2.png objects\avian\screen2\screen2icon.png objects\avian\screen2\screen2lit.png objects\avian\screen3\screen3.png objects\avian\screen3\screen3icon.png objects\avian\screen3\screen3lit.png objects\avian\screen4\screen4.png objects\avian\screen4\screen4icon.png objects\avian\screen4\screen4lit.png objects\avian\screen5\screen5.png objects\avian\screen5\screen5icon.png objects\avian\screen5\screen5lit.png objects\biome\foundry\foundryelevator\foundryelevator.animation objects\biome\foundry\foundryelevator\foundryelevatorlong.object objects\biome\foundry\foundryelevator\foundryelevatorshort.object objects\biome\scorchedcity\bombsheltershelf1\bombsheltershelf1.object objects\biome\scorchedcity\scorchedcitybrokentank\scorchedcitybrokentank.object objects\biome\scorchedcity\scorchedcitystoreshelf\scorchedcitystoreshelf.object objects\bonus\tallchair\tallchair.object objects\clues\apex\minidronerack\minidronerack.animation [NEW] objects\crafting\mechcraftingtable\default.frames [NEW] objects\crafting\mechcraftingtable\mechcraftingtable.animation [NEW] objects\crafting\mechcraftingtable\mechcraftingtable.object [NEW] objects\crafting\mechcraftingtable\mechcraftingtable.png [NEW] objects\crafting\mechcraftingtable\mechcraftingtablefullbright.png [NEW] objects\crafting\mechcraftingtable\mechcraftingtableicon.png objects\farmables\automato\wildautomatoseed.object objects\farmables\avesmingo\wildavesmingoseed.object objects\farmables\banana\wildbananaseed.object objects\farmables\beakseed\wildbeakseedseed.object objects\farmables\boltbulb\wildboltbulbseed.object objects\farmables\boneboo\wildbonebooseed.object objects\farmables\carrot\wildcarrotseed.object objects\farmables\chili\wildchiliseed.object objects\farmables\cocoa\wildcocoaseed.object objects\farmables\coffee\wildcoffeeseed.object objects\farmables\corn\wildcornseed.object objects\farmables\cotton\wildcottonseed.object objects\farmables\crystalplant\wildcrystalplantseed.object objects\farmables\currentcorn\wildcurrentcornseed.object objects\farmables\diodia\wilddiodiaseed.object objects\farmables\dirturchin\wilddirturchinseed.object objects\farmables\eggshoot\wildeggshootseed.object objects\farmables\feathercrown\wildfeathercrownseed.object objects\farmables\grapes\wildgrapesseed.object objects\farmables\kiwi\wildkiwiseed.object objects\farmables\neonmelon\wildneonmelonseed.object objects\farmables\oculemon\wildoculemonseed.object objects\farmables\pearlpea\wildpearlpeaseed.object objects\farmables\pineapple\wildpineappleseed.object objects\farmables\potato\wildpotatoseed.object objects\farmables\pussplum\wildpussplumseed.object objects\farmables\rice\wildriceseed.object objects\farmables\sugarcane\wildsugarcaneseed.object objects\farmables\tomato\wildtomatoseed.object objects\farmables\toxictop\wildtoxictopseed.object objects\farmables\wartweed\wildwartweedseed.object objects\farmables\wheat\wildwheatseed.object objects\floran\floranstoragelocker\floranstoragelocker.object objects\generic\arcadegame\arcadegamegui.config objects\generic\arcadegame\arcadegamegui.lua objects\generic\arcadegame\arcadegameobject.object objects\generic\arcadegame\renderer.lua objects\generic\capsulebig\capsulebig.object objects\generic\capsulemed\capsulemed.object objects\generic\capsulesmall\capsulesmall.object [NEW] objects\generic\capsulespace\capsulespace.object [NEW] objects\generic\capsulespace\capsulespaceicon.png [NEW] objects\generic\capsulespace\capsulespace_bottom.png [NEW] objects\generic\capsulespace\capsulespace_left.frames [NEW] objects\generic\capsulespace\capsulespace_left.png [NEW] objects\generic\capsulespace\capsulespace_right.frames [NEW] objects\generic\capsulespace\capsulespace_right.png [NEW] objects\generic\capsulespace\capsulespace_top.png [NEW] objects\generic\capsulespace\default.frames objects\generic\cropshipper\cropshipper.lua objects\generic\durasteelelevator\durasteelelevatorlong.object objects\generic\durasteelelevator\durasteelelevatorshort.object objects\generic\fairylights\fairylights.object objects\generic\flaghuman\flaghuman.object [NEW] objects\generic\fluorescentlight\flickeringfluorescentlight.object objects\generic\fluorescentlight\fluorescentlight.object objects\generic\mechanicalelevator\mechanicalelevatorlong.object objects\generic\mechanicalelevator\mechanicalelevatorshort.object [NEW] objects\generic\mechassemblystation\default.frames [NEW] objects\generic\mechassemblystation\mechassemblystation.object [NEW] objects\generic\mechassemblystation\mechassemblystation.png [NEW] objects\generic\mechassemblystation\mechassemblystationfullbright.png [NEW] objects\generic\mechassemblystation\mechassemblystationicon.png [NEW] objects\generic\mechbeacon\default.frames [NEW] objects\generic\mechbeacon\mechbeacon.animation [NEW] objects\generic\mechbeacon\mechbeacon.object [NEW] objects\generic\mechbeacon\mechbeacon.png [NEW] objects\generic\mechbeacon\mechbeaconicon.png [NEW] objects\generic\mechbeacon\mechbeaconlit.png objects\generic\metalbarrel1\metalbarrel1.png [NEW] objects\generic\shootingtarget\icon.png [NEW] objects\generic\shootingtarget\shootingtarget.frames [NEW] objects\generic\shootingtarget\shootingtarget.object [NEW] objects\generic\shootingtarget\shootingtarget.png objects\generic\torch\torch.object objects\generic\woodenelevator\woodenelevatorlong.object objects\generic\woodenelevator\woodenelevatorshort.object objects\glitch\anvil\anvil.object objects\glitch\glitchstoragelocker\glitchstoragelocker.object objects\human\bunkerbigpanel\bunkerbigpanel.object objects\human\bunkerbigpanel\bunkerbigpanel.png objects\human\bunkerbigpanel\bunkerbigpanellit.png objects\human\bunkerbookcase\bunkerbookcase.object objects\human\bunkerbookcase\bunkerbookcase.png objects\human\bunkerconsole1\bunkerconsole1.png objects\human\bunkerlighth\bunkerlighth.object objects\human\bunkerlightv\bunkerlightv.object objects\human\bunkerpanel1\bunkerpanel1.object objects\human\bunkerpanel1\bunkerpanel1.png objects\human\bunkerpanel1\bunkerpanel1lit.png objects\human\bunkerpanel2\bunkerpanel2.object objects\human\bunkerpanel2\bunkerpanel2.png objects\human\bunkerpanel2\bunkerpanel2lit.png objects\human\bunkerserver\bunkerserver.png objects\human\bunkerserver\bunkerserverlit.png objects\human\bunkertable1\bunkertable1.png objects\human\bunkertable2\bunkertable2.png objects\human\bunkertable3\bunkertable3.png objects\human\bunkertable3\bunkertable3lit.png objects\human\bunkerwires\bunkerwires.png objects\human\bunkerwires\bunkerwiresicon.png objects\human\humanstoragelocker\humanstoragelocker.object objects\human\marinesign\marinesign.object objects\human\prisoncabinet1\prisoncabinet1.png objects\human\prisonfile1\prisonfile1.png objects\human\prisonfile2\prisonfile2.png objects\human\prisonstonesign\prisonstonesign.object objects\human\vendingmachine\vendingmachine.object objects\human\watermachine\watermachine.png objects\hylotl\airlockdoor\airlockdoor.object objects\hylotl\airlockhatch\airlockhatch.object [NEW] objects\hylotl\beautifulattempt\beautifulattempt.object [NEW] objects\hylotl\beautifulattempt\beautifulattempt.png [NEW] objects\hylotl\beautifulattempt\beautifulattempticon.png [NEW] objects\hylotl\beautifulattempt\default.frames objects\hylotl\hylotlstoragelocker\hylotlstoragelocker.object [NEW] objects\hylotl\letheiasign\letheiasign.frames [NEW] objects\hylotl\letheiasign\letheiasign.object [NEW] objects\hylotl\letheiasign\letheiasign.png [NEW] objects\hylotl\letheiasign\letheiasignicon.png [NEW] objects\hylotl\letheiasign\letheiasignlit.frames [NEW] objects\hylotl\letheiasign\letheiasignlit.png [NEW] objects\hylotl\numisign\default.frames objects\hylotl\numisign\numisign.object [NEW] objects\hylotl\numisign\numisignlit.png objects\hylotl\poptopplush\poptopplush.png objects\hylotl\poptopplush\poptopplushicon.png objects\hylotl\underwaterlightsmall\underwaterlightsmall.object objects\mission\bossdoor\bossdoor.object objects\mission\lunarbaseconsole\lunarbaseconsole.object objects\mission\miningchest\miningchest.object objects\mission\miningcrusher\miningcrusher.object objects\mission\miningdoor\miningdoor.object objects\mission\miningfence\miningfence.object objects\mission\mininghazardsign\mininghazardsign.object objects\mission\miningpowersign\miningpowersign.object objects\mission\miningskip\miningskip.object objects\mission\miningverticaldoor\miningverticaldoor.object objects\novakid\frontierwindmill\frontierwindmill.object objects\novakid\novakidstoragelocker\novakidstoragelocker.object objects\outpost\bathroomhanddryer\bathroomhanddryer.object objects\outpost\bathroomsink\bathroomsink.object objects\outpost\bathroomstall\bathroomstall.object objects\outpost\bathroomtrash\bathroomtrash.object objects\outpost\bathroomurinal\bathroomurinal.object objects\outpost\bench\bench.object objects\outpost\coffeemachine\coffeemachine.object objects\outpost\filingcabinet\filingcabinet.object objects\outpost\fireextinguisher\fireextinguisher.object [NEW] objects\outpost\hangingbooster\hangingbooster.frames [NEW] objects\outpost\hangingbooster\hangingbooster.object [NEW] objects\outpost\hangingbooster\hangingbooster.png [NEW] objects\outpost\hangingbooster\hangingboostericon.png [NEW] objects\outpost\mechsign\mechsign.frames [NEW] objects\outpost\mechsign\mechsign.object [NEW] objects\outpost\mechsign\mechsign.png [NEW] objects\outpost\mechsign\mechsignicon.png objects\outpost\outpostairlock\outpostairlock.object [NEW] objects\outpost\outpostairlocklarge\default.frames objects\outpost\outpostairlocklarge\outpostairlocklarge.object [NEW] objects\outpost\outpostairlocklarge\outpostrailairlock.object [NEW] objects\outpost\outpostairlocklarge\outpostrailairlock.png objects\outpost\outpostbarstool\outpostbarstool.object objects\outpost\outpostbed\outpostbed.object objects\outpost\outpostbutton\outpostbutton.object objects\outpost\outpostcabinet\outpostcabinet.object objects\outpost\outpostcargocrate\outpostcargocrate.object objects\outpost\outpostcargocrateshort\outpostcargocrateshort.object objects\outpost\outpostceilinglight\outpostceilinglight.object objects\outpost\outpostchair\outpostchair.object objects\outpost\outpostconsole\outpostconsole.object objects\outpost\outpostcrane\outpostcrane.object objects\outpost\outpostdesk\outpostdesk.object objects\outpost\outpostfridge\outpostfridge.object objects\outpost\outpostgenerator\outpostgenerator.object [NEW] objects\outpost\outposthatchlarge\default.frames [NEW] objects\outpost\outposthatchlarge\icon.png [NEW] objects\outpost\outposthatchlarge\outposthatchlarge.object [NEW] objects\outpost\outposthatchlarge\outposthatchlarge.png [NEW] objects\outpost\outposthatchlarge\outpostrailhatch.object [NEW] objects\outpost\outposthatchlarge\outpostrailhatch.png objects\outpost\outpostkeypad\outpostkeypad.object objects\outpost\outpostlamp\outpostlamp.object objects\outpost\outpostlight\outpostlight.object objects\outpost\outpostlocker\outpostlocker.object objects\outpost\outpostmicrowave\outpostmicrowave.object objects\outpost\outpostmonitor\outpostmonitor.object objects\outpost\outpostpc\outpostpc.object objects\outpost\outpostpublicchair\outpostpublicchair.object objects\outpost\outpostradardish\outpostradardish.object objects\outpost\outpostsecurityconsole\outpostsecurityconsole.object objects\outpost\outpostservicepanel\outpostservicepanel.object objects\outpost\outpostshippingcontainer\outpostshippingcontainer.object objects\outpost\outpostslidingdoor\outpostslidingdoor.object objects\outpost\outpostsmallmonitor\outpostsmallmonitor.object objects\outpost\outpoststandingdesk\outpoststandingdesk.object objects\outpost\outposttable\outposttable.object objects\outpost\outposttank\outposttank.object objects\outpost\outpostterminal\outpostterminal.object objects\outpost\penguinweaponshop\penguinweaponshop.object objects\outpost\plasticplant\plasticplant.object objects\outpost\roofvent\roofvent.object objects\outpost\signstore\signstore.object objects\outpost\signstore\signstoreobject.lua objects\outpost\watercooler\watercooler.object [NEW] objects\playerstation\stationgrid.lua [NEW] objects\playerstation\backgrounds\2bend.png [NEW] objects\playerstation\backgrounds\bendbot.png [NEW] objects\playerstation\backgrounds\bendbotflip.png [NEW] objects\playerstation\backgrounds\bendtop.png [NEW] objects\playerstation\backgrounds\bendtopflip.png [NEW] objects\playerstation\backgrounds\core.png [NEW] objects\playerstation\backgrounds\cross.png [NEW] objects\playerstation\backgrounds\hugecorediagbot.png [NEW] objects\playerstation\backgrounds\hugecorediagtop.png [NEW] objects\playerstation\backgrounds\mechbay.png [NEW] objects\playerstation\backgrounds\passage.png [NEW] objects\playerstation\backgrounds\passageglass.png [NEW] objects\playerstation\backgrounds\passageglassleft.png [NEW] objects\playerstation\backgrounds\passageglassright.png [NEW] objects\playerstation\backgrounds\shaft.png [NEW] objects\playerstation\backgrounds\shaftglass.png [NEW] objects\playerstation\backgrounds\shaftglassbottom.png [NEW] objects\playerstation\backgrounds\shaftglasstop.png [NEW] objects\playerstation\backgrounds\start.png [NEW] objects\playerstation\backgrounds\stationbackground2bend.object [NEW] objects\playerstation\backgrounds\stationbackgroundbendbot.object [NEW] objects\playerstation\backgrounds\stationbackgroundbendtop.object [NEW] objects\playerstation\backgrounds\stationbackgroundcore.object [NEW] objects\playerstation\backgrounds\stationbackgroundcross.object [NEW] objects\playerstation\backgrounds\stationbackgroundhugecorediagbot.object [NEW] objects\playerstation\backgrounds\stationbackgroundhugecorediagtop.object [NEW] objects\playerstation\backgrounds\stationbackgroundmechbay.object [NEW] objects\playerstation\backgrounds\stationbackgroundpassage.object [NEW] objects\playerstation\backgrounds\stationbackgroundpassageglass.object [NEW] objects\playerstation\backgrounds\stationbackgroundpassageglassleft.object [NEW] objects\playerstation\backgrounds\stationbackgroundpassageglassright.object [NEW] objects\playerstation\backgrounds\stationbackgroundshaft.object [NEW] objects\playerstation\backgrounds\stationbackgroundshaftglass.object [NEW] objects\playerstation\backgrounds\stationbackgroundshaftglassbottom.object [NEW] objects\playerstation\backgrounds\stationbackgroundshaftglasstop.object [NEW] objects\playerstation\backgrounds\stationbackgroundstart.object [NEW] objects\playerstation\backgrounds\stationbackgroundtjunchorizontalbottom.object [NEW] objects\playerstation\backgrounds\stationbackgroundtjunchorizontaltop.object [NEW] objects\playerstation\backgrounds\stationbackgroundtjuncvertical.object [NEW] objects\playerstation\backgrounds\tjunchorizontalbottom.png [NEW] objects\playerstation\backgrounds\tjunchorizontaltop.png [NEW] objects\playerstation\backgrounds\tjuncvertical.png [NEW] objects\playerstation\backgrounds\tjuncverticalflip.png [NEW] objects\playerstation\expansionslot\expansionslot.animation [NEW] objects\playerstation\expansionslot\expansionslot.lua [NEW] objects\playerstation\expansionslot\expansionslot.object [NEW] objects\playerstation\expansionslot\expansionslot.png [NEW] objects\playerstation\expansionslot\expansionslotfullbright.png [NEW] objects\playerstation\expansionslot\expansionslothorizontal.object [NEW] objects\playerstation\expansionslot\expansionslothorizontal.png [NEW] objects\playerstation\expansionslot\expansionslothorizontalfullbright.png [NEW] objects\playerstation\playerstationconsole\playerstationconsole.frames [NEW] objects\playerstation\playerstationconsole\playerstationconsole.lua [NEW] objects\playerstation\playerstationconsole\playerstationconsole.object [NEW] objects\playerstation\playerstationconsole\playerstationconsole.png [NEW] objects\playerstation\playerstationconsole\playerstationconsoleicon.png [NEW] objects\playerstation\playerstationconsole\playerstationconsolelit.frames [NEW] objects\playerstation\playerstationconsole\playerstationconsolelit.png objects\rails\railbumper\railbumper.object objects\rails\railsensor\railsensor.object objects\rails\railstop\railstop.object objects\rails\railswitch\railswitch.object [NEW] objects\rails\railtramstop\default.frames [NEW] objects\rails\railtramstop\railtramstop.animation [NEW] objects\rails\railtramstop\railtramstop.lua [NEW] objects\rails\railtramstop\railtramstop.object [NEW] objects\rails\railtramstop\railtramstop.png [NEW] objects\rails\railtramstop\railtramstopfullbright.png [NEW] objects\rails\railtramstop\railtramstopicon.png objects\ship\apexcaptainschair\apexcaptainschair.object objects\ship\apexshipdoor\apexshiphatch.object objects\ship\apexshiplocker\apexshiplocker.object objects\ship\aviancaptainschair\aviancaptainschair.object objects\ship\avianshipdoor\avianshiphatch.object objects\ship\avianshiplocker\avianshiplocker.object objects\ship\avianteleporter\avianteleporter.object objects\ship\avianteleporterTier0\avianteleporterTier0.object [NEW] objects\ship\boosters\bigboosterflame\encounterbigboosterflame.object [NEW] objects\ship\boosters\boosterflame\encounterboosterflame.object [NEW] objects\ship\boosters\boosterflamehuman\encounterboosterflamehuman.object [NEW] objects\ship\boosters\smallboosterflame\encountersmallboosterflame.object [NEW] objects\ship\boosters\smallboosterflame\encountersmallboosterflame2.object objects\ship\boosters\smallboosterflame\smallboosterflame.object objects\ship\boosters\smallboosterflame\smallboosterflame.png [NEW] objects\ship\boosters\smallboosterflame\smallboosterflameflip.png objects\ship\boosters\smallboosterflame\smallboosterflameglitch.object objects\ship\boosters\smallboosterflame\smallboosterflamehuman2.object objects\ship\florancaptainschair\florancaptainschair.object objects\ship\floranshipdoor\floranshiphatch.object objects\ship\floranshiplocker\floranshiplocker.object objects\ship\floranteleporter\floranteleporter.object objects\ship\floranteleporterTier0\floranteleporterTier0.object objects\ship\glitchcaptainschair\glitchcaptainschair.object objects\ship\glitchshipdoor\glitchshiphatch.object objects\ship\glitchshiplocker\glitchshiplocker.object objects\ship\glitchteleporter\glitchteleporter.object objects\ship\glitchteleporterTier0\glitchteleporterTier0.object objects\ship\humancaptainschair\humancaptainschair.object objects\ship\humanshipdoor\humanshiphatch.object objects\ship\humanshiplocker\humanshiplocker.object objects\ship\humanteleporter\humanteleporter.object objects\ship\humanteleporterTier0\humanteleporterTier0.object objects\ship\hylotlcaptainschair\hylotlcaptainschair.object objects\ship\hylotlshipdoor\hylotlshiphatch.object objects\ship\hylotlshiplocker\hylotlshiplocker.object objects\ship\hylotlteleporter\hylotlteleporter.object objects\ship\hylotlteleporterTier0\hylotlteleporterTier0.object objects\ship\novakidcaptainschair\novakidcaptainschair.object objects\ship\novakidshipdoor\novakidshiphatch.object objects\ship\novakidshiplocker\novakidshiplocker.object objects\ship\novakidteleporter\novakidteleporter.object objects\ship\novakidteleporterTier0\novakidteleporterTier0.object objects\ship\teleporter\teleporter.object objects\ship\teleporterTier0\teleporterTier0.object [NEW] objects\space\astrocabinet\astrocabinet.object [NEW] objects\space\astrocabinet\astrocabinet.png [NEW] objects\space\astrocabinet\astrocabineticon.png [NEW] objects\space\astrocabinet\default.frames [NEW] objects\space\astroceilingmonitor\astroceilingmonitor.animation [NEW] objects\space\astroceilingmonitor\astroceilingmonitor.object [NEW] objects\space\astroceilingmonitor\astroceilingmonitor.png [NEW] objects\space\astroceilingmonitor\astroceilingmonitoricon.png [NEW] objects\space\astroceilingmonitor\astroceilingmonitorlit.png [NEW] objects\space\astroceilingmonitor\default.frames [NEW] objects\space\astrochair\astrochair.frames [NEW] objects\space\astrochair\astrochair.object [NEW] objects\space\astrochair\astrochair.png [NEW] objects\space\astrochair\astrochairicon.png [NEW] objects\space\astroconsole\astroconsole.animation [NEW] objects\space\astroconsole\astroconsole.object [NEW] objects\space\astroconsole\astroconsole.png [NEW] objects\space\astroconsole\astroconsoleicon.png [NEW] objects\space\astroconsole\astroconsolelit.png [NEW] objects\space\astroconsole\default.frames [NEW] objects\space\astrocrate\astrocrate.object [NEW] objects\space\astrocrate\astrocrate.png [NEW] objects\space\astrocrate\astrocrateicon.png [NEW] objects\space\astrocrate\default.frames [NEW] objects\space\astrodoor\astrodoor.frames [NEW] objects\space\astrodoor\astrodoor.object [NEW] objects\space\astrodoor\astrodoor.png [NEW] objects\space\astrodoor\icon.png [NEW] objects\space\astrolight\astrolight.object [NEW] objects\space\astrolight\astrolight.png [NEW] objects\space\astrolight\astrolighticon.png [NEW] objects\space\astrolight\astrolightlit.png [NEW] objects\space\astrolight\default.frames [NEW] objects\space\astromonitor\astromonitor.animation [NEW] objects\space\astromonitor\astromonitor.object [NEW] objects\space\astromonitor\astromonitor.png [NEW] objects\space\astromonitor\astromonitoricon.png [NEW] objects\space\astromonitor\astromonitorlit.png [NEW] objects\space\astromonitor\default.frames [NEW] objects\space\astroserver\astroserver.object [NEW] objects\space\astroserver\astroserver.png [NEW] objects\space\astroserver\astroservericon.png [NEW] objects\space\astroserver\astroserverlit.png [NEW] objects\space\astroserver\default.frames [NEW] objects\space\astrostoragelocker\astrostoragelocker.object [NEW] objects\space\astrostoragelocker\astrostoragelocker.png [NEW] objects\space\astrostoragelocker\astrostoragelockericon.png [NEW] objects\space\astrostoragelocker\default.frames [NEW] objects\space\astrotable\astrotable.object [NEW] objects\space\astrotable\astrotable.png [NEW] objects\space\astrotable\astrotableicon.png [NEW] objects\space\astrotable\default.frames [NEW] objects\space\astrovent\astrovent.object [NEW] objects\space\astrovent\astrovent.png [NEW] objects\space\astrovent\astroventicon.png [NEW] objects\space\astrovent\default.frames [NEW] objects\space\astrowallpanel\astrowallpanel.object [NEW] objects\space\astrowallpanel\astrowallpanel.png [NEW] objects\space\astrowallpanel\astrowallpanelicon.png [NEW] objects\space\astrowallpanel\default.frames [NEW] objects\space\cultistdoor\cultistdoor.frames [NEW] objects\space\cultistdoor\cultistdoor.object [NEW] objects\space\cultistdoor\cultistdoor.png [NEW] objects\space\cultistdoor\icon.png [NEW] objects\space\dockingfield\default.frames [NEW] objects\space\dockingfield\dockingfield.animation [NEW] objects\space\dockingfield\dockingfield.lua [NEW] objects\space\dockingfield\dockingfield.object [NEW] objects\space\dockingfield\dockingfield.png [NEW] objects\space\dockingfield\dockingfieldhorizontal.frames [NEW] objects\space\dockingfield\dockingfieldhorizontal.png [NEW] objects\space\dockingfield\dockingfieldhorizontallit.frames [NEW] objects\space\dockingfield\dockingfieldhorizontallit.png [NEW] objects\space\dockingfield\dockingfieldhorizontalsmall.frames [NEW] objects\space\dockingfield\dockingfieldhorizontalsmall.png [NEW] objects\space\dockingfield\dockingfieldhorizontalsmalllit.frames [NEW] objects\space\dockingfield\dockingfieldhorizontalsmalllit.png [NEW] objects\space\dockingfield\dockingfieldicon.png [NEW] objects\space\dockingfield\dockingfieldlit.png [NEW] objects\space\dockingfield\dockingfieldsmall.frames [NEW] objects\space\dockingfield\dockingfieldsmall.object [NEW] objects\space\dockingfield\dockingfieldsmall.png [NEW] objects\space\dockingfield\dockingfieldsmalllit.frames [NEW] objects\space\dockingfield\dockingfieldsmalllit.png [NEW] objects\space\industrialbed\industrialbed.frames [NEW] objects\space\industrialbed\industrialbed.object [NEW] objects\space\industrialbed\industrialbed.png [NEW] objects\space\industrialbed\industrialbedcover.png [NEW] objects\space\industrialbed\industrialbedicon.png [NEW] objects\space\industrialcanister\industrialcanister.frames [NEW] objects\space\industrialcanister\industrialcanister.object [NEW] objects\space\industrialcanister\industrialcanister.png [NEW] objects\space\industrialcanister\industrialcanistericon.png [NEW] objects\space\industrialchair\industrialchair.frames [NEW] objects\space\industrialchair\industrialchair.object [NEW] objects\space\industrialchair\industrialchair.png [NEW] objects\space\industrialchair\industrialchairicon.png [NEW] objects\space\industrialcomputer\industrialcomputer.animation [NEW] objects\space\industrialcomputer\industrialcomputer.frames [NEW] objects\space\industrialcomputer\industrialcomputer.object [NEW] objects\space\industrialcomputer\industrialcomputer.png [NEW] objects\space\industrialcomputer\industrialcomputericon.png [NEW] objects\space\industrialcomputer\industrialcomputerlit.frames [NEW] objects\space\industrialcomputer\industrialcomputerlit.png [NEW] objects\space\industrialcrate\icon.png [NEW] objects\space\industrialcrate\industrialcrate.frames [NEW] objects\space\industrialcrate\industrialcrate.object [NEW] objects\space\industrialcrate\industrialcrate.png [NEW] objects\space\industrialcrate\industrialcratelit.frames [NEW] objects\space\industrialcrate\industrialcratelit.png [NEW] objects\space\industrialdisplay\industrialdisplay.animation [NEW] objects\space\industrialdisplay\industrialdisplay.frames [NEW] objects\space\industrialdisplay\industrialdisplay.object [NEW] objects\space\industrialdisplay\industrialdisplay.png [NEW] objects\space\industrialdisplay\industrialdisplayicon.png [NEW] objects\space\industrialdisplay\industrialdisplaylit.frames [NEW] objects\space\industrialdisplay\industrialdisplaylit.png [NEW] objects\space\industrialdoor\industrialdoor.frames [NEW] objects\space\industrialdoor\industrialdoor.object [NEW] objects\space\industrialdoor\industrialdoor.png [NEW] objects\space\industrialdoor\industrialdooricon.png [NEW] objects\space\industriallight\industriallight.frames [NEW] objects\space\industriallight\industriallight.object [NEW] objects\space\industriallight\industriallight.png [NEW] objects\space\industriallight\industriallighticon.png [NEW] objects\space\industriallight\industriallightlit.frames [NEW] objects\space\industriallight\industriallightlit.png [NEW] objects\space\industrialstoragelocker\icon.png [NEW] objects\space\industrialstoragelocker\industrialstoragelocker.frames [NEW] objects\space\industrialstoragelocker\industrialstoragelocker.object [NEW] objects\space\industrialstoragelocker\industrialstoragelocker.png [NEW] objects\space\industrialtable\industrialtable.frames [NEW] objects\space\industrialtable\industrialtable.object [NEW] objects\space\industrialtable\industrialtable.png [NEW] objects\space\industrialtable\industrialtableicon.png [NEW] objects\space\lunarlander\lunarlander.frames [NEW] objects\space\lunarlander\lunarlander.object [NEW] objects\space\lunarlander\lunarlander.png [NEW] objects\space\lunarlander\lunarlandericon.png [NEW] objects\space\shipgreeble1\default.frames [NEW] objects\space\shipgreeble1\icon.png [NEW] objects\space\shipgreeble1\shipgreeble1.object [NEW] objects\space\shipgreeble1\shipgreeble1.png [NEW] objects\space\shipgreeble1\shipgreeble1_side.frames [NEW] objects\space\shipgreeble1\shipgreeble1_side.png [NEW] objects\space\shipgreeble1\shipgreeble1_top.png [NEW] objects\space\shipgreeble2\default.frames [NEW] objects\space\shipgreeble2\icon.png [NEW] objects\space\shipgreeble2\shipgreeble2.object [NEW] objects\space\shipgreeble2\shipgreeble2.png [NEW] objects\space\shipgreeble2\shipgreeble2_side.frames [NEW] objects\space\shipgreeble2\shipgreeble2_side.png [NEW] objects\space\shipgreeble2\shipgreeble2_top.png [NEW] objects\space\shipgreeble3\default.frames [NEW] objects\space\shipgreeble3\icon.png [NEW] objects\space\shipgreeble3\shipgreeble3.object [NEW] objects\space\shipgreeble3\shipgreeble3.png [NEW] objects\space\shipgreeble3\shipgreeble3_side.frames [NEW] objects\space\shipgreeble3\shipgreeble3_side.png [NEW] objects\space\shipgreeble3\shipgreeble3_top.png [NEW] objects\space\shipgreeble4\default.frames [NEW] objects\space\shipgreeble4\icon.png [NEW] objects\space\shipgreeble4\shipgreeble4.object [NEW] objects\space\shipgreeble4\shipgreeble4.png [NEW] objects\space\shipgreeble4\shipgreeble4_side.frames [NEW] objects\space\shipgreeble4\shipgreeble4_side.png [NEW] objects\space\shipgreeble4\shipgreeble4_top.png [NEW] objects\space\spacebar\spacebarbottom.frames [NEW] objects\space\spacebar\spacebarbottom.object [NEW] objects\space\spacebar\spacebarbottom.png [NEW] objects\space\spacebar\spacebarbottomicon.png [NEW] objects\space\spaceslideshow\default.frames [NEW] objects\space\spaceslideshow\spaceslideshow.animation [NEW] objects\space\spaceslideshow\spaceslideshow.object [NEW] objects\space\spaceslideshow\spaceslideshow.png [NEW] objects\space\spaceslideshow\spaceslideshowicon.png [NEW] objects\space\spaceslideshow\spaceslideshowlit.png [NEW] objects\space\stationbench\default.frames [NEW] objects\space\stationbench\stationbench.object [NEW] objects\space\stationbench\stationbench.png [NEW] objects\space\stationbench\stationbenchicon.png [NEW] objects\space\stationceilingvent\default.frames [NEW] objects\space\stationceilingvent\stationceilingvent.object [NEW] objects\space\stationceilingvent\stationceilingvent.png [NEW] objects\space\stationceilingvent\stationceilingventicon.png [NEW] objects\space\stationchair\icon.png [NEW] objects\space\stationchair\stationchair.frames [NEW] objects\space\stationchair\stationchair.object [NEW] objects\space\stationchair\stationchair.png [NEW] objects\space\stationconsole\default.frames [NEW] objects\space\stationconsole\stationconsole.animation [NEW] objects\space\stationconsole\stationconsole.object [NEW] objects\space\stationconsole\stationconsole.png [NEW] objects\space\stationconsole\stationconsoleicon.png [NEW] objects\space\stationconsole\stationconsolelit.png [NEW] objects\space\stationcrate\default.frames [NEW] objects\space\stationcrate\stationcrate.object [NEW] objects\space\stationcrate\stationcrate.png [NEW] objects\space\stationcrate\stationcrateicon.png [NEW] objects\space\stationdisplay\default.frames [NEW] objects\space\stationdisplay\stationdisplay.animation [NEW] objects\space\stationdisplay\stationdisplay.object [NEW] objects\space\stationdisplay\stationdisplay.png [NEW] objects\space\stationdisplay\stationdisplayicon.png [NEW] objects\space\stationdisplay\stationdisplaylit.png [NEW] objects\space\stationdoor\icon.png [NEW] objects\space\stationdoor\stationdoor.frames [NEW] objects\space\stationdoor\stationdoor.object [NEW] objects\space\stationdoor\stationdoor.png [NEW] objects\space\stationdoor\stationdoorlarge.frames [NEW] objects\space\stationdoor\stationdoorlarge.object [NEW] objects\space\stationdoor\stationdoorlarge.png [NEW] objects\space\stationhatch\default.frames [NEW] objects\space\stationhatch\icon.png [NEW] objects\space\stationhatch\stationhatch.object [NEW] objects\space\stationhatch\stationhatch.png [NEW] objects\space\stationhatch\stationrailhatch.object [NEW] objects\space\stationhatch\stationrailhatch.png [NEW] objects\space\stationhologram\default.frames [NEW] objects\space\stationhologram\stationhologram.animation [NEW] objects\space\stationhologram\stationhologram.object [NEW] objects\space\stationhologram\stationhologram.png [NEW] objects\space\stationhologram\stationhologramicon.png [NEW] objects\space\stationhologram\stationhologramlit.png [NEW] objects\space\stationlight\stationlighth.frames [NEW] objects\space\stationlight\stationlighth.object [NEW] objects\space\stationlight\stationlighth.png [NEW] objects\space\stationlight\stationlighthicon.png [NEW] objects\space\stationlight\stationlighthlit.frames [NEW] objects\space\stationlight\stationlighthlit.png [NEW] objects\space\stationlight\stationlightv.frames [NEW] objects\space\stationlight\stationlightv.object [NEW] objects\space\stationlight\stationlightv.png [NEW] objects\space\stationlight\stationlightvicon.png [NEW] objects\space\stationlight\stationlightvlit.frames [NEW] objects\space\stationlight\stationlightvlit.png [NEW] objects\space\stationmedscanner\icon.png [NEW] objects\space\stationmedscanner\stationmedscanner.frames [NEW] objects\space\stationmedscanner\stationmedscanner.object [NEW] objects\space\stationmedscanner\stationmedscanner.png [NEW] objects\space\stationmedscanner\stationmedscannercover.png [NEW] objects\space\stationmedscanner\stationmedscannerlit.frames [NEW] objects\space\stationmedscanner\stationmedscannerlit.png [NEW] objects\space\stationpylon\default.frames [NEW] objects\space\stationpylon\stationpylon.object [NEW] objects\space\stationpylon\stationpylon.png [NEW] objects\space\stationpylon\stationpylonicon.png [NEW] objects\space\stationtable\default.frames [NEW] objects\space\stationtable\stationtable.object [NEW] objects\space\stationtable\stationtable.png [NEW] objects\space\stationtable\stationtableicon.png [NEW] objects\space\stationtradesign\default.frames [NEW] objects\space\stationtradesign\icon.png [NEW] objects\space\stationtradesign\stationtradesign.animation [NEW] objects\space\stationtradesign\stationtradesignelectronics.object [NEW] objects\space\stationtradesign\stationtradesignelectronics.png [NEW] objects\space\stationtradesign\stationtradesignfood.object [NEW] objects\space\stationtradesign\stationtradesignfood.png [NEW] objects\space\stationtradesign\stationtradesignlit.png [NEW] objects\space\stationtradesign\stationtradesignmedic.object [NEW] objects\space\stationtradesign\stationtradesignmedic.png [NEW] objects\space\stationtradesign\stationtradesignweapons.object [NEW] objects\space\stationtradesign\stationtradesignweapons.png [NEW] objects\space\stationvendingmachine\default.frames [NEW] objects\space\stationvendingmachine\stationvendingmachine.object [NEW] objects\space\stationvendingmachine\stationvendingmachine.png [NEW] objects\space\stationvendingmachine\stationvendingmachineicon.png [NEW] objects\space\stationwallpanel\default.frames [NEW] objects\space\stationwallpanel\stationwallpanel.object [NEW] objects\space\stationwallpanel\stationwallpanel.png [NEW] objects\space\stationwallpanel\stationwallpanelicon.png [NEW] objects\space\telescope\telescope.frames [NEW] objects\space\telescope\telescope.object [NEW] objects\space\telescope\telescope.png [NEW] objects\space\telescope\telescopeicon.png [NEW] objects\space\wiredtarget\default.frames [NEW] objects\space\wiredtarget\wiredtarget.lua [NEW] objects\space\wiredtarget\wiredtarget.object [NEW] objects\space\wiredtarget\wiredtarget.png [NEW] objects\space\wiredtarget\wiredtargetfullbright.png [NEW] objects\space\wiredtarget\wiredtargeticon.png objects\spawner\colonydeed\colonydeed.lua [NEW] objects\teleporter\returnoutpostteleporter\remoteteleporter.object objects\teleporter\returnoutpostteleporter\returnoutpostteleporter.object objects\themed\island\hulagirl\hulagirl.object objects\themed\retroscifi\retroscifibed\retroscifibed.object objects\themed\wave\waveswitch\waveswitch.object objects\wired\door\door.lua [NEW] objects\wired\invisiblesound\default.frames [NEW] objects\wired\invisiblesound\invisiblesound.animation [NEW] objects\wired\invisiblesound\invisiblesound.object [NEW] objects\wired\invisiblesound\invisiblesound.png [NEW] objects\wired\invisiblesound\invisiblesoundhidden.png objects\wired\ironbeacon\decoyprincess.lua objects\wired\ironbeacon\ironbeacon.lua objects\wired\ironbeacon\jellyboss.lua objects\wired\ironbeacon\robot.lua [NEW] objects\wired\light\lightnoise.lua objects\wired\movingplatform\movingelevatorlong.objectdisabled objects\wired\movingplatform\movingelevatorshort.objectdisabled [NEW] objects\wired\smallwallswitch\invisiblewallswitch.frames [NEW] objects\wired\smallwallswitch\invisiblewallswitch.object [NEW] objects\wired\smallwallswitch\invisiblewallswitch.png [NEW] objects\wired\smallwallswitch\invisiblewallswitchhidden.frames [NEW] objects\wired\smallwallswitch\invisiblewallswitchhidden.png objects\wired\switch\switch.lua objects\wreck\wreckbed\wreckbed.png objects\wreck\wrecklocker\wrecklocker.png objects\wreck\wrecksmalltable\wrecksmalltable.png objects\wreck\wrecktable\wrecktable.object objects\wreck\wrecktable\wrecktable.png objects\wreck\wreckvendingmachine\wreckvendingmachine.object parallax\images\space\base\1.png [NEW] parallax\images\spaceback\base\1.png [NEW] parallax\images\spaceback\base\2.png [NEW] parallax\images\spaceback\base\3.png [NEW] parallax\images\spaceback\base\4.png [NEW] parallax\images\spacedust\base\1.png [NEW] parallax\images\spacedust2\base\1.png [NEW] parallax\images\spaceencounterfront\base\1.png [NEW] parallax\images\spaceencounterfront\base\2.png [NEW] parallax\images\spaceencounterfront\base\3.png [NEW] parallax\images\spaceencounterfront\base\4.png [NEW] parallax\space\space.parallax particles\hoverbikedownthrust.particle particles\hoverbikethrust.particle particles\rocketbarrelpuff.particle particles\tinyrocketsmoke.particle [NEW] particles\monsterdeath\masteroid\masteroidshard1.particle [NEW] particles\monsterdeath\masteroid\masteroidshard1.png [NEW] particles\monsterdeath\masteroid\masteroidshard2.particle [NEW] particles\monsterdeath\masteroid\masteroidshard2.png [NEW] particles\monsterdeath\masteroid\masteroidshard3.particle [NEW] particles\monsterdeath\masteroid\masteroidshard3.png [NEW] particles\monsterdeath\masteroid\masteroidshard4.particle [NEW] particles\monsterdeath\masteroid\masteroidshard4.png [NEW] particles\shards\greytargetshard.particle [NEW] particles\shards\redtargetshard.particle plants\trees\forest\foliage\bubbles\bubbles.modularfoliage plants\trees\seatrees\foliage\bubbles\bubbles.modularfoliage player\playereffects.animation projectiles\killable.lua projectiles\physics.config projectiles\activeitems\boomerang\boomerang.projectile projectiles\activeitems\boomerang\boomerang_l6.projectile projectiles\activeitems\boomerang\fireboomerang.projectile projectiles\activeitems\boomerang\fireboomerang_l6.projectile projectiles\activeitems\boomerang\iceboomerang.projectile projectiles\activeitems\boomerang\iceboomerang_l6.projectile projectiles\activeitems\boomerang\lunarang.projectile projectiles\activeitems\boomerang\lunarangprojectile.lua projectiles\activeitems\boomerang\lunarangshard.projectile projectiles\activeitems\boomerang\lunarangshard_l6.projectile projectiles\activeitems\boomerang\lunarang_l6.projectile projectiles\activeitems\boomerang\wormerang.projectile projectiles\activeitems\boomerang\wormerang_l6.projectile projectiles\activeitems\chakram\chakramprojectile.lua projectiles\activeitems\chakram\hoverchakramprojectile.lua projectiles\activeitems\grapplehook\grapplehook.lua projectiles\activeitems\grapplehook\grapplehook.projectile projectiles\activeitems\magnorb\magnorb.projectile [NEW] projectiles\activeitems\miniwobbleshot\default.frames [NEW] projectiles\activeitems\miniwobbleshot\miniwobbleshot.png [NEW] projectiles\activeitems\miniwobbleshot\miniwobbleshot.projectile [NEW] projectiles\activeitems\spaceplasma\default.frames [NEW] projectiles\activeitems\spaceplasma\spaceplasma.png [NEW] projectiles\activeitems\spaceplasma\spaceplasma.projectile projectiles\activeitems\staff\forcecage\forcecage.projectile projectiles\activeitems\staff\pullzone\pullzone.projectile projectiles\activeitems\staff\pushzone\pushzone.projectile [NEW] projectiles\activeitems\stickyplasma\icon.png [NEW] projectiles\activeitems\stickyplasma\stickyplasma.frames [NEW] projectiles\activeitems\stickyplasma\stickyplasma.png [NEW] projectiles\activeitems\stickyplasma\stickyplasma.projectile projectiles\boss\kluexboss\stoneplatform\pillarplatform.projectile projectiles\explosions\gravityexplosion\hgravityexplosion.projectile projectiles\explosions\gravityexplosion\ngravityexplosion.projectile [NEW] projectiles\explosions\heavybulletexplosion\heavybulletexplosion.config [NEW] projectiles\explosions\mechexplosion\default.frames [NEW] projectiles\explosions\mechexplosion\mechexplosion.png [NEW] projectiles\explosions\mechexplosion\mechexplosion.projectile projectiles\explosions\regularexplosion2\fireexplosionknockback.config [NEW] projectiles\explosions\spacemineexplosion\default.frames [NEW] projectiles\explosions\spacemineexplosion\spacemineexplosion.png [NEW] projectiles\explosions\spacemineexplosion\spacemineexplosion.projectile [NEW] projectiles\explosions\vsmallplasmaexplosion\vsmallplasmaexplosion.frames [NEW] projectiles\explosions\vsmallplasmaexplosion\vsmallplasmaexplosion.png [NEW] projectiles\explosions\vsmallplasmaexplosion\vsmallplasmaexplosion.projectile projectiles\guns\plasmabullets\plasmabullet\plasmabullet.projectile projectiles\guns\tentaclefist\invisibletentaclefist.projectile projectiles\guns\tentaclefist\invisibletentaclefistnosound.projectile projectiles\guns\tentaclefist\tentaclefist.lua projectiles\guns\tentaclefist\tentaclefist.projectile [NEW] projectiles\mech\armcannonfire\armcannonfire.png [NEW] projectiles\mech\armcannonfire\armcannonfire.projectile [NEW] projectiles\mech\armcannonfire\default.frames [NEW] projectiles\mech\clustermine\clustermine.png [NEW] projectiles\mech\clustermine\clustermine.projectile [NEW] projectiles\mech\clustermine\default.frames [NEW] projectiles\mech\energybeam\default.frames [NEW] projectiles\mech\energybeam\energybeam.png [NEW] projectiles\mech\energybeam\energybeam.projectile [NEW] projectiles\mech\flakbullet\default.frames [NEW] projectiles\mech\flakbullet\flakbullet.png [NEW] projectiles\mech\flakbullet\flakbullet.projectile [NEW] projectiles\mech\gravitymine\default.frames [NEW] projectiles\mech\gravitymine\gravitymine.png [NEW] projectiles\mech\gravitymine\gravitymine.projectile [NEW] projectiles\mech\gravitysphere\gravitysphere.frames [NEW] projectiles\mech\gravitysphere\gravitysphere.lua [NEW] projectiles\mech\gravitysphere\gravitysphere.png [NEW] projectiles\mech\gravitysphere\gravitysphere.projectile [NEW] projectiles\mech\heatbeam\default.frames [NEW] projectiles\mech\heatbeam\heatbeam.png [NEW] projectiles\mech\heatbeam\heatbeam.projectile [NEW] projectiles\mech\heavybullet\heavybullet.frames [NEW] projectiles\mech\heavybullet\heavybullet.png [NEW] projectiles\mech\heavybullet\heavybullet.projectile [NEW] projectiles\mech\heavybullet\icon.png [NEW] projectiles\mech\mechbladeswoosh\default.frames [NEW] projectiles\mech\mechbladeswoosh\mechbladeswoosh.png [NEW] projectiles\mech\mechbladeswoosh\mechbladeswoosh.projectile [NEW] projectiles\mech\mechchainsawswoosh\default.frames [NEW] projectiles\mech\mechchainsawswoosh\mechchainsawswoosh.png [NEW] projectiles\mech\mechchainsawswoosh\mechchainsawswoosh.projectile [NEW] projectiles\mech\mechenergypickup\energypickup.lua [NEW] projectiles\mech\mechenergypickup\mechenergypickup.frames [NEW] projectiles\mech\mechenergypickup\mechenergypickup.png [NEW] projectiles\mech\mechenergypickup\mechenergypickup.projectile [NEW] projectiles\mech\mechhomingmissile\default.frames [NEW] projectiles\mech\mechhomingmissile\mechhomingmissile.png [NEW] projectiles\mech\mechhomingmissile\mechhomingmissile.projectile [NEW] projectiles\mech\mechminimissile\default.frames [NEW] projectiles\mech\mechminimissile\mechminimissile.png [NEW] projectiles\mech\mechminimissile\mechminimissile.projectile [NEW] projectiles\mech\mechmissile\default.frames [NEW] projectiles\mech\mechmissile\mechmissile.png [NEW] projectiles\mech\mechmissile\mechmissile.projectile [NEW] projectiles\mech\mechplasmabullet\default.frames [NEW] projectiles\mech\mechplasmabullet\mechplasmabullet.png [NEW] projectiles\mech\mechplasmabullet\mechplasmabullet.projectile [NEW] projectiles\mech\mechteslabolt\default.frames [NEW] projectiles\mech\mechteslabolt\mechteslabolt.png [NEW] projectiles\mech\mechteslabolt\mechteslabolt.projectile [NEW] projectiles\mech\mechteslabolt\teslastream_bolt.png [NEW] projectiles\mech\spikefistrocket\spikefistrocket.frames [NEW] projectiles\mech\spikefistrocket\spikefistrocket.png [NEW] projectiles\mech\spikefistrocket\spikefistrocket.projectile [NEW] projectiles\mech\splitterbullet\splitterbullet.frames [NEW] projectiles\mech\splitterbullet\splitterbullet.png [NEW] projectiles\mech\splitterbullet\splitterbullet.projectile [NEW] projectiles\mech\splittershell\splittershell.frames [NEW] projectiles\mech\splittershell\splittershell.png [NEW] projectiles\mech\splittershell\splittershell.projectile [NEW] projectiles\mech\wobbleshot\default.frames [NEW] projectiles\mech\wobbleshot\wobbleshot.png [NEW] projectiles\mech\wobbleshot\wobbleshot.projectile projectiles\throwable\firework3\firework3.projectile projectiles\throwable\firework4\firework4.projectile projectiles\throwable\fireworkgun2\fireworkgun2.projectile projectiles\throwable\fireworkgun3\fireworkgun3.projectile [NEW] projectiles\uniquemonster\chiropterror\chiropterrortrail.frames [NEW] projectiles\uniquemonster\chiropterror\chiropterrortrail.png [NEW] projectiles\uniquemonster\chiropterror\chiropterrortrail.projectile [NEW] projectiles\uniquemonster\omnicannonbullet\default.frames [NEW] projectiles\uniquemonster\omnicannonbullet\omnicannonbullet.png [NEW] projectiles\uniquemonster\omnicannonbullet\omnicannonbullet.projectile [NEW] projectiles\uniquemonster\twigunbullet\default.frames [NEW] projectiles\uniquemonster\twigunbullet\twigunbullet.png [NEW] projectiles\uniquemonster\twigunbullet\twigunbullet.projectile [NEW] projectiles\unsorted\stationpartsound\stationpartsound.projectile quests\generated\templates\recruit_guard.questtemplate [NEW] quests\other\transponder.questtemplate [NEW] quests\outpost\mechunlock.questtemplate [NEW] quests\outpost\mechupgrade1.questtemplate [NEW] quests\outpost\mechupgrade2.questtemplate quests\outpost\penguin2.questtemplate [NEW] quests\outpost\penguinscientistportrait.png quests\scripts\instance.lua quests\scripts\main.lua quests\scripts\questutil.lua quests\scripts\conditions\gather.lua quests\scripts\story\gaterepair.lua quests\story\gaterepair.questtemplate [NEW] radiomessages\mech.radiomessages [NEW] recipes\furniture2\beds\industrialbed.recipe [NEW] recipes\furniture2\decorative\industrialchair.recipe [NEW] recipes\furniture2\decorative\industrialcomputer.recipe [NEW] recipes\furniture2\decorative\industrialdisplay.recipe [NEW] recipes\furniture2\decorative\industrialtable.recipe [NEW] recipes\furniture2\doors\industrialdoor.recipe [NEW] recipes\furniture2\lights\industriallight.recipe [NEW] recipes\furniture2\materials\slopedhullpanel.recipe [NEW] recipes\furniture2\materials\slopedinsetpanel.recipe [NEW] recipes\furniture2\materials\slopedrustypanel.recipe [NEW] recipes\furniture2\materials\slopedscrappanel.recipe [NEW] recipes\furniture2\storage\industrialcanister.recipe [NEW] recipes\furniture2\storage\industrialcrate.recipe [NEW] recipes\furniture2\storage\industrialstoragelocker.recipe [NEW] recipes\mech\arm\mecharmbeamdrill.recipe [NEW] recipes\mech\arm\mecharmbeamsniper.recipe [NEW] recipes\mech\arm\mecharmcannon.recipe [NEW] recipes\mech\arm\mecharmchainsaw.recipe [NEW] recipes\mech\arm\mecharmclustermine.recipe [NEW] recipes\mech\arm\mecharmdrill.recipe [NEW] recipes\mech\arm\mecharmdualrifle.recipe [NEW] recipes\mech\arm\mecharmenergyblade.recipe [NEW] recipes\mech\arm\mecharmenergyrifle.recipe [NEW] recipes\mech\arm\mecharmflakcannon.recipe [NEW] recipes\mech\arm\mecharmgatling.recipe [NEW] recipes\mech\arm\mecharmgravitymine.recipe [NEW] recipes\mech\arm\mecharmguidedmissiles.recipe [NEW] recipes\mech\arm\mecharmheatrifle.recipe [NEW] recipes\mech\arm\mecharmhomingmissile.recipe [NEW] recipes\mech\arm\mecharmmissilerack.recipe [NEW] recipes\mech\arm\mecharmmultidrone.recipe [NEW] recipes\mech\arm\mecharmplasmadrone.recipe [NEW] recipes\mech\arm\mecharmshielddrone.recipe [NEW] recipes\mech\arm\mecharmspikefist.recipe [NEW] recipes\mech\arm\mecharmsplitshot.recipe [NEW] recipes\mech\arm\mecharmteslastream.recipe [NEW] recipes\mech\arm\mecharmtommygun.recipe [NEW] recipes\mech\arm\mecharmwobbleshot.recipe [NEW] recipes\mech\body\mechbodyapex.recipe [NEW] recipes\mech\body\mechbodyapexproto.recipe [NEW] recipes\mech\body\mechbodyavian.recipe [NEW] recipes\mech\body\mechbodyavianproto.recipe [NEW] recipes\mech\body\mechbodybad.recipe [NEW] recipes\mech\body\mechbodycultist.recipe [NEW] recipes\mech\body\mechbodycultist2.recipe [NEW] recipes\mech\body\mechbodyexodus.recipe [NEW] recipes\mech\body\mechbodyfloran.recipe [NEW] recipes\mech\body\mechbodyfloranproto.recipe [NEW] recipes\mech\body\mechbodyglitch.recipe [NEW] recipes\mech\body\mechbodyglitchproto.recipe [NEW] recipes\mech\body\mechbodyhero.recipe [NEW] recipes\mech\body\mechbodyhuman.recipe [NEW] recipes\mech\body\mechbodyhumanproto.recipe [NEW] recipes\mech\body\mechbodyhylotl.recipe [NEW] recipes\mech\body\mechbodyhylotlproto.recipe [NEW] recipes\mech\body\mechbodyiris.recipe [NEW] recipes\mech\body\mechbodymilitary.recipe [NEW] recipes\mech\body\mechbodyminiknog.recipe [NEW] recipes\mech\body\mechbodynovakid.recipe [NEW] recipes\mech\body\mechbodynovakidproto.recipe [NEW] recipes\mech\body\mechbodypenguin.recipe [NEW] recipes\mech\body\mechbodypirate.recipe [NEW] recipes\mech\body\mechbodyprotector.recipe [NEW] recipes\mech\body\mechbodyreactor.recipe [NEW] recipes\mech\body\mechbodyshark.recipe [NEW] recipes\mech\body\mechbodyskull.recipe [NEW] recipes\mech\booster\mechboosterastro.recipe [NEW] recipes\mech\booster\mechboostergallant.recipe [NEW] recipes\mech\booster\mechboosterhammer.recipe [NEW] recipes\mech\booster\mechboostersimple.recipe [NEW] recipes\mech\booster\mechboostersleek.recipe [NEW] recipes\mech\booster\mechboosterstalwart.recipe [NEW] recipes\mech\booster\mechboosterzed.recipe [NEW] recipes\mech\booster\mechboosterzero.recipe [NEW] recipes\mech\legs\mechlegsarc.recipe [NEW] recipes\mech\legs\mechlegshermes.recipe [NEW] recipes\mech\legs\mechlegshopper.recipe [NEW] recipes\mech\legs\mechlegsintrepid.recipe [NEW] recipes\mech\legs\mechlegsronin.recipe [NEW] recipes\mech\legs\mechlegssimple.recipe [NEW] recipes\mech\legs\mechlegssleek.recipe [NEW] recipes\mech\legs\mechlegstwinjet.recipe [NEW] recipes\rails\railtramstop.recipe [NEW] recipes\rails\stationtram.recipe rendering\opengl20.config scripts\behavior.lua [NEW] scripts\drawingutil.lua scripts\pathing.lua scripts\pathutil.lua scripts\rails.lua scripts\rect.lua scripts\sensors.lua scripts\tenant.lua scripts\util.lua scripts\vec2.lua scripts\versioningutils.lua scripts\actions\animator.lua scripts\actions\builders.lua scripts\actions\container.lua scripts\actions\crawling.lua scripts\actions\crew.lua scripts\actions\dialog.lua scripts\actions\entity.lua scripts\actions\flying.lua scripts\actions\items.lua scripts\actions\math.lua scripts\actions\merchant.lua scripts\actions\monster.lua scripts\actions\movement.lua scripts\actions\notification.lua scripts\actions\npc.lua scripts\actions\overrides.lua scripts\actions\pets.lua scripts\actions\position.lua scripts\actions\projectiles.lua scripts\actions\query.lua scripts\actions\quests.lua scripts\actions\reaction.lua scripts\actions\sensor.lua scripts\actions\status.lua [NEW] scripts\actions\tenant.lua scripts\actions\time.lua scripts\actions\world.lua scripts\actions\boss\apeboss.lua scripts\actions\boss\cultistboss.lua scripts\actions\boss\eyeboss.lua scripts\actions\boss\guardian.lua scripts\actions\boss\kluexboss.lua scripts\actions\monsters\farmable.lua [NEW] scripts\actions\monsters\space.lua scripts\actions\npc\tonauac.lua scripts\behavior\bdata.lua scripts\behavior\bgroup.lua [NEW] scripts\deployment\beaconarrowleft.png [NEW] scripts\deployment\beaconarrowright.png [NEW] scripts\deployment\enemyarrow.png [NEW] scripts\deployment\energybar.png [NEW] scripts\deployment\energybarflash.png [NEW] scripts\deployment\energybarframe.png [NEW] scripts\deployment\playermechdeployment.lua [NEW] scripts\projectiles\boomerangprojectile.lua [NEW] scripts\projectiles\guidedprojectile.lua [NEW] scripts\projectiles\homingprojectile.lua [NEW] scripts\projectiles\remotedetonatedprojectile.lua [NEW] scripts\projectiles\sinewaveprojectile.lua [NEW] scripts\projectiles\zigzagprojectile.lua [NEW] sfx\cinematics\despatch_loop.ogg [NEW] sfx\gun\mech_clustermine1.ogg [NEW] sfx\gun\mech_dualrifle1.ogg [NEW] sfx\gun\mech_flakcannon1.ogg [NEW] sfx\gun\mech_flakcannon2.ogg [NEW] sfx\gun\mech_flakcannon3.ogg [NEW] sfx\gun\mech_gatling1.ogg [NEW] sfx\gun\mech_gatling_active_loop.ogg [NEW] sfx\gun\mech_gatling_winddown.ogg [NEW] sfx\gun\mech_gatling_windup.ogg [NEW] sfx\gun\mech_gravitymine_reload.ogg [NEW] sfx\gun\mech_multidrone1.ogg [NEW] sfx\gun\mech_multidrone_fire.ogg [NEW] sfx\gun\mech_plasmadrone1.ogg [NEW] sfx\gun\mech_plasmadrone_fire1.ogg [NEW] sfx\gun\mech_plasmadrone_loop1.ogg [NEW] sfx\gun\mech_plasmadrone_loop2.ogg [NEW] sfx\gun\mech_shielddrone1.ogg [NEW] sfx\gun\mech_shielddrone_loop1.ogg [NEW] sfx\gun\mech_shielddrone_recover1.ogg [NEW] sfx\gun\mech_splitshot1.ogg [NEW] sfx\gun\mech_splitshot2.ogg [NEW] sfx\gun\mech_wobbleshot_fire1.ogg [NEW] sfx\gun\mech_wobbleshot_fire2.ogg [NEW] sfx\gun\omnicannon_shot1.ogg [NEW] sfx\gun\omnicannon_shot2.ogg [NEW] sfx\gun\omnicannon_shot3.ogg [NEW] sfx\gun\omnicannon_shot4.ogg [NEW] sfx\gun\plasma_ar4.ogg [NEW] sfx\gun\plasma_pistol4.ogg sfx\gun\sniper2.ogg [NEW] sfx\gun\twigun_shot1.ogg [NEW] sfx\gun\twigun_shot2.ogg [NEW] sfx\gun\twigun_shot3.ogg [NEW] sfx\instruments\spaceorgan\a0.ogg [NEW] sfx\instruments\spaceorgan\a1.ogg [NEW] sfx\instruments\spaceorgan\a2.ogg [NEW] sfx\instruments\spaceorgan\a3.ogg [NEW] sfx\instruments\spaceorgan\a4.ogg [NEW] sfx\instruments\spaceorgan\a5.ogg [NEW] sfx\instruments\spaceorgan\a6.ogg [NEW] sfx\instruments\spaceorgan\a7.ogg [NEW] sfx\instruments\spaceorgan\tuning.config [NEW] sfx\instruments\squarewave\a0.ogg [NEW] sfx\instruments\squarewave\a1.ogg [NEW] sfx\instruments\squarewave\a2.ogg [NEW] sfx\instruments\squarewave\a3.ogg [NEW] sfx\instruments\squarewave\a4.ogg [NEW] sfx\instruments\squarewave\a5.ogg [NEW] sfx\instruments\squarewave\a6.ogg [NEW] sfx\instruments\squarewave\a7.ogg [NEW] sfx\instruments\squarewave\tuning.config sfx\interface\keypad_press.ogg [NEW] sfx\interface\mech_energy_low.ogg [NEW] sfx\interface\mech_energy_refill.ogg [NEW] sfx\interface\nav_examine_off.ogg [NEW] sfx\interface\nav_examine_on.ogg [NEW] sfx\interface\nav_panning_loop.ogg [NEW] sfx\interface\nav_select2.ogg [NEW] sfx\interface\playerstation_place1.ogg sfx\interface\starving4.ogg [NEW] sfx\interface\stationtransponder_name.ogg [NEW] sfx\interface\stationtransponder_probelaunch1.ogg [NEW] sfx\interface\stationtransponder_probelaunch2.ogg [NEW] sfx\interface\stationtransponder_probeprep.ogg [NEW] sfx\interface\stationtransponder_probewinddown.ogg [NEW] sfx\interface\stationtransponder_startup.ogg [NEW] sfx\interface\stationtransponder_stationpulse.ogg [NEW] sfx\interface\stationtransponder_valid1.ogg [NEW] sfx\interface\stationtransponder_valid2.ogg [NEW] sfx\melee\drillspear_active_loop1.ogg [NEW] sfx\melee\drillspear_active_loop2.ogg [NEW] sfx\melee\drillspear_winddown1.ogg [NEW] sfx\melee\drillspear_winddown2.ogg [NEW] sfx\melee\drillspear_windup1.ogg [NEW] sfx\melee\drillspear_windup2.ogg [NEW] sfx\melee\drillspear_windup3.ogg [NEW] sfx\melee\mech_chainsaw_swing1.ogg [NEW] sfx\melee\mech_chainsaw_swing2.ogg [NEW] sfx\melee\mech_chainsaw_winddown1.ogg [NEW] sfx\melee\mech_chainsaw_windup1.ogg [NEW] sfx\melee\mech_drill_active1.ogg [NEW] sfx\melee\mech_drill_active2.ogg [NEW] sfx\melee\mech_drill_winddown1.ogg [NEW] sfx\melee\mech_drill_winddown2.ogg [NEW] sfx\melee\mech_drill_windup1.ogg [NEW] sfx\melee\mech_drill_windup2.ogg [NEW] sfx\melee\mech_energychainsaw_swing1.ogg [NEW] sfx\melee\mech_energychainsaw_swing2.ogg [NEW] sfx\melee\mech_energychainsaw_swing3.ogg [NEW] sfx\melee\mech_energychainsaw_swing4.ogg [NEW] sfx\melee\mech_energychainsaw_winddown1.ogg [NEW] sfx\melee\mech_energychainsaw_windup1.ogg [NEW] sfx\melee\mech_energysword_swing1.ogg [NEW] sfx\melee\mech_energysword_swing2.ogg [NEW] sfx\melee\mech_energysword_swing3.ogg [NEW] sfx\melee\mech_energysword_swing4.ogg [NEW] sfx\melee\mech_energysword_winddown1.ogg [NEW] sfx\melee\mech_energysword_windup1.ogg [NEW] sfx\melee\mech_energysword_windup2.ogg sfx\objects\bunkerdisplay.ogg [NEW] sfx\objects\dockingfield_active_loop.ogg [NEW] sfx\objects\dockingfield_idle_loop.ogg [NEW] sfx\objects\mechbeacon_pulse1.ogg [NEW] sfx\objects\mechbeacon_pulse2.ogg [NEW] sfx\objects\mechcrafting_loop.ogg [NEW] sfx\objects\mechcrafting_lower.ogg [NEW] sfx\objects\mechcrafting_raise.ogg [NEW] sfx\objects\mechcrafting_weld.ogg [NEW] sfx\objects\server_loop.ogg [NEW] sfx\objects\smallboosterflame.ogg [NEW] sfx\objects\solid_platform_loop.ogg [NEW] sfx\projectiles\gravitymine_detonate.ogg [NEW] sfx\projectiles\gravitymine_loop.ogg [NEW] sfx\projectiles\mech_wobbleshot_loop.ogg [NEW] sfx\projectiles\plasmabullet_ricochet1.ogg [NEW] sfx\projectiles\plasmabullet_ricochet2.ogg [NEW] sfx\projectiles\plasmabullet_ricochet3.ogg [NEW] sfx\projectiles\raygun_wobble_loop.ogg [NEW] sfx\projectiles\raygun_wobble_loop2.ogg [NEW] sfx\rails\tramstop_wait.ogg [NEW] sfx\tech\composite_platform_loop.ogg [NEW] sfx\tech\mech_activate1.ogg [NEW] sfx\tech\mech_activate2.ogg [NEW] sfx\tech\mech_activate3.ogg [NEW] sfx\tech\mech_activate4.ogg [NEW] sfx\tech\mech_deactivate.ogg [NEW] sfx\tech\mech_explosion.ogg [NEW] sfx\tech\mech_explosion_windup.ogg [NEW] sfx\tech\mech_horn_airhorn.ogg [NEW] sfx\tech\mech_horn_bull.ogg [NEW] sfx\tech\mech_horn_charge.ogg [NEW] sfx\tech\mech_horn_clownhorn.ogg [NEW] sfx\tech\mech_horn_foghorn.ogg [NEW] sfx\tech\mech_horn_steamwhistle.ogg [NEW] sfx\tech\mech_horn_train.ogg [NEW] sfx\tech\mech_jetpack_loop1.ogg [NEW] sfx\tech\mech_jetpack_loop2.ogg [NEW] sfx\tech\mech_jetpack_loop3.ogg [NEW] sfx\tech\mech_jetpack_loop4.ogg [NEW] sfx\tech\mech_jetpack_off.ogg [NEW] sfx\tech\mech_jetpack_thrust1.ogg [NEW] sfx\tech\mech_jetpack_thrust2.ogg [NEW] sfx\tech\mech_jetpack_thrust3.ogg [NEW] sfx\tech\mech_jetpack_thrust4.ogg sfx\tech\mech_jump1.ogg [NEW] sfx\tech\mech_servo1.ogg [NEW] sfx\tech\mech_servo_step1.ogg [NEW] sfx\tech\mech_servo_step2.ogg [NEW] sfx\tech\mech_servo_step3.ogg [NEW] sfx\tech\mech_servo_step4.ogg sfx\tech\mech_step2.ogg [NEW] sfx\tech\mech_step3.ogg [NEW] sfx\tech\mech_step4.ogg [NEW] sfx\tech\mech_step5.ogg [NEW] sfx\tech\mech_walk_lift.ogg [NEW] sfx\tech\tramplatform_close.ogg [NEW] sfx\tech\tramplatform_open.ogg sfx\tools\chainsaw_rev_down.ogg [NEW] sfx\tools\chainsaw_rev_down2.ogg [NEW] sfx\tools\chainsaw_rev_up2.ogg [NEW] sfx\tools\chainsaw_swing1.ogg [NEW] sfx\tools\chainsaw_swing2.ogg [NEW] sfx\tools\despatch_in.ogg [NEW] sfx\tools\despatch_out.ogg species\backernamegen.config species\humanfemalenamegen.config species\penguinoid.config stagehands\coordinator.lua [NEW] stagehands\mechbeacon.stagehand stagehands\bossplanner\bossabilities\miniontriggergroup.bossability stagehands\bossplanner\bossabilities\spawnminiongroup.bossability stats\fishing_primary.lua stats\monster_primary.lua stats\npc_primary.lua stats\player_primary.lua [NEW] stats\spacemonster_primary.lua stats\effects\biomeairless\biomeairless.lua stats\effects\levitation\levitation.lua [NEW] stats\effects\overload\overload.animation [NEW] stats\effects\overload\overload.lua [NEW] stats\effects\overload\overload.statuseffect tech\dash\blinkdash.lua tech\dash\dash.lua tech\distortionsphere\aquasphere.lua tech\distortionsphere\distortionsphere.lua tech\distortionsphere\sonicsphere.lua tech\distortionsphere\spikesphere.lua tech\jump\multijump.lua [NEW] tenants\other\evilglitch.tenant [NEW] tenants\other\space\astro.tenant [NEW] tenants\other\space\industrial.tenant [NEW] tenants\other\space\spaceguardtenant.tenant [NEW] tenants\other\space\spacehero.tenant [NEW] tenants\other\space\station.tenant tiles\classicmaterialtemplate.config tiles\columntemplate.config tiles\girdertemplate.config tiles\pipetemplate.config tiles\railtemplate.config tiles\rowtemplate.config tiles\screwtemplate.config tiles\shadows.png [NEW] tiles\slopedmaterialtemplate.config tiles\materials\apexshipdetails.png tiles\materials\apexshipsupport.png tiles\materials\apexshipwall.png tiles\materials\bars.material tiles\materials\chain.material tiles\materials\chain.png tiles\materials\copperblock.png tiles\materials\copperfence.material tiles\materials\copperfence.png tiles\materials\copperroofing.png tiles\materials\copperwindow.png tiles\materials\crosshatch.material tiles\materials\dermisblock.material tiles\materials\girder.png tiles\materials\heavyironbars.material tiles\materials\heavypipe.material tiles\materials\heavypipe.png tiles\materials\ironBlock.png tiles\materials\junktech.png tiles\materials\lightmetal.png tiles\materials\log.material tiles\materials\lunarbaseblock.png tiles\materials\mediummetal.png tiles\materials\outpostsupport.png tiles\materials\outpostwall1.png tiles\materials\outpostwall2.png tiles\materials\pillarblock.material tiles\materials\pressurisedbeam.png tiles\materials\pressuriseddurasteel.png tiles\materials\pressurisedgirder.png tiles\materials\rustyblock.png tiles\materials\rustymetal.png tiles\materials\sewerpipe.material tiles\materials\sewerpipe.png tiles\materials\silverblock.png tiles\materials\silverscrew.material tiles\materials\silverscrew.png [NEW] tiles\materials\slopedhullpanel.material [NEW] tiles\materials\slopedhullpanel.png [NEW] tiles\materials\slopedinsetpanel.material [NEW] tiles\materials\slopedinsetpanel.png [NEW] tiles\materials\slopedrustypanel.material [NEW] tiles\materials\slopedrustypanel.png [NEW] tiles\materials\slopedscrappanel.material [NEW] tiles\materials\slopedscrappanel.png tiles\materials\spidersilkblock.material tiles\materials\techhull1.png tiles\materials\tentaclepipe.material tiles\materials\wickersupport.material tiles\materials\woodenwindow2.material [NEW] tiles\mods\meteordust.matmod [NEW] tiles\mods\meteordust.png tiles\platforms\copperplatform.png tiles\platforms\lunarbaseplatform.png tiles\platforms\outpostplatform.png tiles\platforms\tungstenplatform.png tiles\rails\compositerail.png tiles\rails\rustyrail.png tilesets\packed\huge-objects.json tilesets\packed\materials.json tilesets\packed\miscellaneous.json tilesets\packed\objects-by-category\actionfigure.json tilesets\packed\objects-by-category\breakable.json tilesets\packed\objects-by-category\crafting.json tilesets\packed\objects-by-category\decorative.json tilesets\packed\objects-by-category\door.json tilesets\packed\objects-by-category\farmable.json tilesets\packed\objects-by-category\furniture.json tilesets\packed\objects-by-category\light.json tilesets\packed\objects-by-category\other.json [NEW] tilesets\packed\objects-by-category\playerstation.json tilesets\packed\objects-by-category\pot.json tilesets\packed\objects-by-category\railpoint.json tilesets\packed\objects-by-category\storage.json tilesets\packed\objects-by-category\teleporter.json tilesets\packed\objects-by-category\teleportmarker.json tilesets\packed\objects-by-category\wire.json tilesets\packed\objects-by-colonytag\apex.json tilesets\packed\objects-by-colonytag\apexmansion.json tilesets\packed\objects-by-colonytag\apexresearchlab.json [NEW] tilesets\packed\objects-by-colonytag\astro.json tilesets\packed\objects-by-colonytag\christmas.json tilesets\packed\objects-by-colonytag\combat.json tilesets\packed\objects-by-colonytag\commerce.json tilesets\packed\objects-by-colonytag\cooking.json tilesets\packed\objects-by-colonytag\crafting.json tilesets\packed\objects-by-colonytag\door.json tilesets\packed\objects-by-colonytag\electronic.json tilesets\packed\objects-by-colonytag\evil.json tilesets\packed\objects-by-colonytag\human.json tilesets\packed\objects-by-colonytag\humanbunker.json tilesets\packed\objects-by-colonytag\hylotl.json tilesets\packed\objects-by-colonytag\hylotloceancity.json [NEW] tilesets\packed\objects-by-colonytag\industrial.json tilesets\packed\objects-by-colonytag\light.json [NEW] tilesets\packed\objects-by-colonytag\mech.json tilesets\packed\objects-by-colonytag\mechanical.json [NEW] tilesets\packed\objects-by-colonytag\medical.json tilesets\packed\objects-by-colonytag\mining.json tilesets\packed\objects-by-colonytag\misc.json tilesets\packed\objects-by-colonytag\outpost.json tilesets\packed\objects-by-colonytag\pretty.json [NEW] tilesets\packed\objects-by-colonytag\rails.json tilesets\packed\objects-by-colonytag\science.json [NEW] tilesets\packed\objects-by-colonytag\space.json [NEW] tilesets\packed\objects-by-colonytag\station.json tilesets\packed\objects-by-colonytag\storage.json [NEW] tilesets\packed\objects-by-colonytag\technology.json tilesets\packed\objects-by-colonytag\wired.json tilesets\packed\objects-by-race\apex.json tilesets\packed\objects-by-race\generic.json tilesets\packed\objects-by-race\human.json tilesets\packed\objects-by-race\hylotl.json tilesets\packed\objects-by-type\container.json tilesets\packed\objects-by-type\loungeable.json tilesets\packed\objects-by-type\physics.json tilesets\packed\objects-by-type\teleporter.json treasure\common.treasurepools treasure\hunting.treasurepools treasure\microdungeons.treasurepools treasure\monster.treasurepools [NEW] treasure\space.treasurepools treasure\Missions\miningtreasure1.treasurepools vehicles\ballista\ballista.lua vehicles\boat\boat.lua vehicles\boat\boat.vehicle vehicles\car\jeep.lua vehicles\hoverbike\hoverbike.lua vehicles\hoverbike\hoverbikegreen.vehicle vehicles\hoverbike\hoverbikekhaki.vehicle vehicles\hoverbike\hoverbikered.vehicle vehicles\mech\mech.animation vehicles\mech\mech.lua vehicles\mech\glitchmech\glitchmech.animation [NEW] vehicles\modularmech\mechpalettes.config [NEW] vehicles\modularmech\mechpartmanager.lua [NEW] vehicles\modularmech\mechparts_arm.config [NEW] vehicles\modularmech\mechparts_body.config [NEW] vehicles\modularmech\mechparts_booster.config [NEW] vehicles\modularmech\mechparts_horn.config [NEW] vehicles\modularmech\mechparts_legs.config [NEW] vehicles\modularmech\modularmech.animation [NEW] vehicles\modularmech\modularmech.lua [NEW] vehicles\modularmech\modularmech.vehicle [NEW] vehicles\modularmech\arm\beamdrill.png [NEW] vehicles\modularmech\arm\beamdrill_fullbright.png [NEW] vehicles\modularmech\arm\beamsniper.png [NEW] vehicles\modularmech\arm\beamsniper_fullbright.png [NEW] vehicles\modularmech\arm\cannon.png [NEW] vehicles\modularmech\arm\cannon_fullbright.png [NEW] vehicles\modularmech\arm\chainsaw.png [NEW] vehicles\modularmech\arm\chainsaw_fullbright.png [NEW] vehicles\modularmech\arm\clustermine.png [NEW] vehicles\modularmech\arm\clustermine_fullbright.png [NEW] vehicles\modularmech\arm\default.frames [NEW] vehicles\modularmech\arm\drill.png [NEW] vehicles\modularmech\arm\drill_fullbright.png [NEW] vehicles\modularmech\arm\dualrifle.png [NEW] vehicles\modularmech\arm\dualrifle_fullbright.png [NEW] vehicles\modularmech\arm\energybladearm_back.png [NEW] vehicles\modularmech\arm\energybladearm_back_fullbright.png [NEW] vehicles\modularmech\arm\energybladearm_front.png [NEW] vehicles\modularmech\arm\energybladearm_front_fullbright.png [NEW] vehicles\modularmech\arm\energyrifle.png [NEW] vehicles\modularmech\arm\energyrifle_fullbright.png [NEW] vehicles\modularmech\arm\energyshield.png [NEW] vehicles\modularmech\arm\energyshield_fullbright.png [NEW] vehicles\modularmech\arm\flakcannon.png [NEW] vehicles\modularmech\arm\flakcannon_fullbright.png [NEW] vehicles\modularmech\arm\gatling.png [NEW] vehicles\modularmech\arm\gatling_fullbright.png [NEW] vehicles\modularmech\arm\gravitymine.png [NEW] vehicles\modularmech\arm\gravitymine_fullbright.png [NEW] vehicles\modularmech\arm\guidedmissiles.png [NEW] vehicles\modularmech\arm\guidedmissiles_fullbright.png [NEW] vehicles\modularmech\arm\heatrifle.png [NEW] vehicles\modularmech\arm\heatrifle_fullbright.png [NEW] vehicles\modularmech\arm\homingmissile.png [NEW] vehicles\modularmech\arm\homingmissile_fullbright.png [NEW] vehicles\modularmech\arm\hook.png [NEW] vehicles\modularmech\arm\missilerack.png [NEW] vehicles\modularmech\arm\missilerack_fullbright.png [NEW] vehicles\modularmech\arm\multidronelauncher.png [NEW] vehicles\modularmech\arm\multidronelauncher_fullbright.png [NEW] vehicles\modularmech\arm\plasmadronelauncher.png [NEW] vehicles\modularmech\arm\plasmadronelauncher_fullbright.png [NEW] vehicles\modularmech\arm\shielddronelauncher.png [NEW] vehicles\modularmech\arm\shielddronelauncher_fullbright.png [NEW] vehicles\modularmech\arm\shieldprojector.png [NEW] vehicles\modularmech\arm\shieldprojector_fullbright.png [NEW] vehicles\modularmech\arm\spikefist.png [NEW] vehicles\modularmech\arm\spikefist_fullbright.png [NEW] vehicles\modularmech\arm\splitshot_back.png [NEW] vehicles\modularmech\arm\splitshot_back_fullbright.png [NEW] vehicles\modularmech\arm\splitshot_front.png [NEW] vehicles\modularmech\arm\splitshot_front_fullbright.png [NEW] vehicles\modularmech\arm\teslastream.png [NEW] vehicles\modularmech\arm\teslastream_fullbright.png [NEW] vehicles\modularmech\arm\tommygun.png [NEW] vehicles\modularmech\arm\tommygun_fullbright.png [NEW] vehicles\modularmech\arm\wobbleshot.png [NEW] vehicles\modularmech\arm\wobbleshot_fullbright.png [NEW] vehicles\modularmech\armscripts\base.lua [NEW] vehicles\modularmech\armscripts\beamarm.lua [NEW] vehicles\modularmech\armscripts\boomerangarm.lua [NEW] vehicles\modularmech\armscripts\despawnarm.lua [NEW] vehicles\modularmech\armscripts\drillarm.lua [NEW] vehicles\modularmech\armscripts\dronelauncher.lua [NEW] vehicles\modularmech\armscripts\gatlingarm.lua [NEW] vehicles\modularmech\armscripts\gunarm.lua [NEW] vehicles\modularmech\armscripts\meleearm.lua [NEW] vehicles\modularmech\armscripts\missileburstarm.lua [NEW] vehicles\modularmech\armscripts\remotedetonatorarm.lua [NEW] vehicles\modularmech\beam\drillbeam.frames [NEW] vehicles\modularmech\beam\drillbeam.png [NEW] vehicles\modularmech\beam\sniperbeam.frames [NEW] vehicles\modularmech\beam\sniperbeam.png [NEW] vehicles\modularmech\body\apexproto_back.png [NEW] vehicles\modularmech\body\apexproto_front.png [NEW] vehicles\modularmech\body\apex_back.png [NEW] vehicles\modularmech\body\apex_front.png [NEW] vehicles\modularmech\body\apex_fullbright.png [NEW] vehicles\modularmech\body\avianproto_back.png [NEW] vehicles\modularmech\body\avianproto_front.png [NEW] vehicles\modularmech\body\avianproto_fullbright.png [NEW] vehicles\modularmech\body\avian_back.png [NEW] vehicles\modularmech\body\avian_front.png [NEW] vehicles\modularmech\body\avian_fullbright.png [NEW] vehicles\modularmech\body\bad_front.png [NEW] vehicles\modularmech\body\bad_fullbright.png [NEW] vehicles\modularmech\body\cultist2_back.png [NEW] vehicles\modularmech\body\cultist2_front.png [NEW] vehicles\modularmech\body\cultist2_fullbright.png [NEW] vehicles\modularmech\body\cultist_back.png [NEW] vehicles\modularmech\body\cultist_front.png [NEW] vehicles\modularmech\body\cultist_fullbright.png [NEW] vehicles\modularmech\body\default.frames [NEW] vehicles\modularmech\body\exodus_back.png [NEW] vehicles\modularmech\body\exodus_front.png [NEW] vehicles\modularmech\body\exodus_fullbright.png [NEW] vehicles\modularmech\body\floranproto_back.png [NEW] vehicles\modularmech\body\floranproto_front.png [NEW] vehicles\modularmech\body\floran_back.png [NEW] vehicles\modularmech\body\floran_front.png [NEW] vehicles\modularmech\body\floran_fullbright.png [NEW] vehicles\modularmech\body\glitchproto_back.png [NEW] vehicles\modularmech\body\glitchproto_front.png [NEW] vehicles\modularmech\body\glitch_back.png [NEW] vehicles\modularmech\body\glitch_front.png [NEW] vehicles\modularmech\body\glitch_fullbright.png [NEW] vehicles\modularmech\body\hero_back.png [NEW] vehicles\modularmech\body\hero_front.png [NEW] vehicles\modularmech\body\hero_fullbright.png [NEW] vehicles\modularmech\body\humanproto_back.png [NEW] vehicles\modularmech\body\humanproto_front.png [NEW] vehicles\modularmech\body\humanproto_fullbright.png [NEW] vehicles\modularmech\body\human_back.png [NEW] vehicles\modularmech\body\human_front.png [NEW] vehicles\modularmech\body\human_fullbright.png [NEW] vehicles\modularmech\body\hylotlproto_back.png [NEW] vehicles\modularmech\body\hylotlproto_front.png [NEW] vehicles\modularmech\body\hylotlproto_fullbright.png [NEW] vehicles\modularmech\body\hylotl_back.png [NEW] vehicles\modularmech\body\hylotl_front.png [NEW] vehicles\modularmech\body\hylotl_fullbright.png [NEW] vehicles\modularmech\body\iris_back.png [NEW] vehicles\modularmech\body\iris_front.png [NEW] vehicles\modularmech\body\iris_fullbright.png [NEW] vehicles\modularmech\body\military_back.png [NEW] vehicles\modularmech\body\military_front.png [NEW] vehicles\modularmech\body\military_fullbright.png [NEW] vehicles\modularmech\body\miniknog_back.png [NEW] vehicles\modularmech\body\miniknog_front.png [NEW] vehicles\modularmech\body\miniknog_fullbright.png [NEW] vehicles\modularmech\body\novakidproto_back.png [NEW] vehicles\modularmech\body\novakidproto_front.png [NEW] vehicles\modularmech\body\novakid_back.png [NEW] vehicles\modularmech\body\novakid_front.png [NEW] vehicles\modularmech\body\penguin_front.png [NEW] vehicles\modularmech\body\penguin_fullbright.png [NEW] vehicles\modularmech\body\pirate_back.png [NEW] vehicles\modularmech\body\pirate_front.png [NEW] vehicles\modularmech\body\pirate_fullbright.png [NEW] vehicles\modularmech\body\protector_back.png [NEW] vehicles\modularmech\body\protector_front.png [NEW] vehicles\modularmech\body\protector_fullbright.png [NEW] vehicles\modularmech\body\reactor_front.png [NEW] vehicles\modularmech\body\reactor_fullbright.png [NEW] vehicles\modularmech\body\shark_front.png [NEW] vehicles\modularmech\body\shark_fullbright.png [NEW] vehicles\modularmech\body\skull_back.png [NEW] vehicles\modularmech\body\skull_front.png [NEW] vehicles\modularmech\body\skull_fullbright.png [NEW] vehicles\modularmech\booster\astro_back_back.png [NEW] vehicles\modularmech\booster\astro_back_front.png [NEW] vehicles\modularmech\booster\astro_front_back.png [NEW] vehicles\modularmech\booster\astro_front_front.png [NEW] vehicles\modularmech\booster\default.frames [NEW] vehicles\modularmech\booster\gallant_back_back.png [NEW] vehicles\modularmech\booster\gallant_back_front.png [NEW] vehicles\modularmech\booster\gallant_front_back.png [NEW] vehicles\modularmech\booster\gallant_front_front.png [NEW] vehicles\modularmech\booster\hammer_back_back.png [NEW] vehicles\modularmech\booster\hammer_back_front.png [NEW] vehicles\modularmech\booster\hammer_front_back.png [NEW] vehicles\modularmech\booster\hammer_front_front.png [NEW] vehicles\modularmech\booster\simple_back_back.png [NEW] vehicles\modularmech\booster\simple_back_front.png [NEW] vehicles\modularmech\booster\simple_front_back.png [NEW] vehicles\modularmech\booster\simple_front_front.png [NEW] vehicles\modularmech\booster\sleek_back_back.png [NEW] vehicles\modularmech\booster\sleek_back_front.png [NEW] vehicles\modularmech\booster\sleek_front_back.png [NEW] vehicles\modularmech\booster\sleek_front_front.png [NEW] vehicles\modularmech\booster\stalwart_back_back.png [NEW] vehicles\modularmech\booster\stalwart_back_front.png [NEW] vehicles\modularmech\booster\stalwart_front_back.png [NEW] vehicles\modularmech\booster\stalwart_front_front.png [NEW] vehicles\modularmech\booster\zed_back_back.png [NEW] vehicles\modularmech\booster\zed_back_front.png [NEW] vehicles\modularmech\booster\zed_front_back.png [NEW] vehicles\modularmech\booster\zed_front_front.png [NEW] vehicles\modularmech\booster\zero_back_back.png [NEW] vehicles\modularmech\booster\zero_back_front.png [NEW] vehicles\modularmech\booster\zero_front_back.png [NEW] vehicles\modularmech\booster\zero_front_front.png [NEW] vehicles\modularmech\boosterflame\astro.png [NEW] vehicles\modularmech\boosterflame\default.frames [NEW] vehicles\modularmech\boosterflame\gallant.png [NEW] vehicles\modularmech\boosterflame\hammer_back.png [NEW] vehicles\modularmech\boosterflame\hammer_front.png [NEW] vehicles\modularmech\boosterflame\simple_back.png [NEW] vehicles\modularmech\boosterflame\simple_front.png [NEW] vehicles\modularmech\boosterflame\sleek.png [NEW] vehicles\modularmech\boosterflame\stalwart.png [NEW] vehicles\modularmech\boosterflame\zed_back.png [NEW] vehicles\modularmech\boosterflame\zed_front.png [NEW] vehicles\modularmech\boosterflame\zero.png [NEW] vehicles\modularmech\hips\arc.png [NEW] vehicles\modularmech\hips\default.frames [NEW] vehicles\modularmech\hips\hermes.png [NEW] vehicles\modularmech\hips\hopper.png [NEW] vehicles\modularmech\hips\intrepid.png [NEW] vehicles\modularmech\hips\ronin.png [NEW] vehicles\modularmech\hips\simple.png [NEW] vehicles\modularmech\hips\sleek.png [NEW] vehicles\modularmech\hips\twinjet.png [NEW] vehicles\modularmech\leg\arc.png [NEW] vehicles\modularmech\leg\arc_fullbright.png [NEW] vehicles\modularmech\leg\default.frames [NEW] vehicles\modularmech\leg\hermes.png [NEW] vehicles\modularmech\leg\hermes_fullbright.png [NEW] vehicles\modularmech\leg\hopper.png [NEW] vehicles\modularmech\leg\hopper_fullbright.png [NEW] vehicles\modularmech\leg\intrepid.png [NEW] vehicles\modularmech\leg\intrepid_fullbright.png [NEW] vehicles\modularmech\leg\ronin.png [NEW] vehicles\modularmech\leg\ronin_fullbright.png [NEW] vehicles\modularmech\leg\simple.png [NEW] vehicles\modularmech\leg\simple_fullbright.png [NEW] vehicles\modularmech\leg\sleek.png [NEW] vehicles\modularmech\leg\sleek_fullbright.png [NEW] vehicles\modularmech\leg\twinjet.png [NEW] vehicles\modularmech\leg\twinjet_fullbright.png [NEW] vehicles\modularmech\legjoint\arc.png [NEW] vehicles\modularmech\legjoint\default.frames [NEW] vehicles\modularmech\legjoint\hermes_back.png [NEW] vehicles\modularmech\legjoint\hermes_front.png [NEW] vehicles\modularmech\legjoint\hopper.png [NEW] vehicles\modularmech\legjoint\intrepid_back.png [NEW] vehicles\modularmech\legjoint\intrepid_front.png [NEW] vehicles\modularmech\legjoint\ronin_back.png [NEW] vehicles\modularmech\legjoint\ronin_front.png [NEW] vehicles\modularmech\legjoint\simple_back.png [NEW] vehicles\modularmech\legjoint\simple_front.png [NEW] vehicles\modularmech\legjoint\sleek_back.png [NEW] vehicles\modularmech\legjoint\sleek_front.png [NEW] vehicles\modularmech\legjoint\twinjet_back.png [NEW] vehicles\modularmech\legjoint\twinjet_front.png vehicles\railplatform\compositerailplatform.animation vehicles\railplatform\compositerailplatform.frames vehicles\railplatform\compositerailplatform.vehicle vehicles\railplatform\compositerailplatformfullbright.frames vehicles\railplatform\railplatform.lua vehicles\railplatform\rustyrailplatform.animation vehicles\railplatform\rustyrailplatform.frames vehicles\railplatform\rustyrailplatform.vehicle [NEW] vehicles\railplatform\solidrailplatform.animation [NEW] vehicles\railplatform\solidrailplatform.frames [NEW] vehicles\railplatform\solidrailplatform.png [NEW] vehicles\railplatform\solidrailplatform.vehicle [NEW] vehicles\railplatform\solidrailplatformfullbright.frames [NEW] vehicles\railplatform\solidrailplatformfullbright.png [NEW] vehicles\railtram\default.frames [NEW] vehicles\railtram\railtram.lua [NEW] vehicles\railtram\stationtram.animation [NEW] vehicles\railtram\stationtram.png [NEW] vehicles\railtram\stationtram.vehicle [NEW] vehicles\railtram\stationtram_arrows.frames [NEW] vehicles\railtram\stationtram_arrows.png [NEW] vehicles\railtram\stationtram_fullbright.png [NEW] vehicles\railtram\stationtram_gate.frames [NEW] vehicles\railtram\stationtram_gate.png [NEW] versioning\CelestialChunk_10_11.lua [NEW] versioning\CelestialChunk_11_12.lua [NEW] versioning\PlayerEntity_28_29.lua [NEW] versioning\WorldMetadata_23_24.lua [NEW] versioning\WorldMetadata_24_25.lua [NEW] versioning\WorldMetadata_24_26.lua [NEW] versioning\WorldMetadata_25_26.lua weather\duststorm\duststorm.weather weather\sandstorm\sandstorm.weather weather\snow\icestorm.weather weather\snow\snow.weather weather\snowstorm\snowstorm.weather DIFFS ----- asteroids_worlds.config 3c3 < "gravityRange" : [10, 10], --- > "gravityRange" : [0, 0], 4a5,6 > > "worldEdgeForceRegions" : "TopAndBottom", celestial.config 309c309,310 < "twinkleTime" : [1.0, 1.5] --- > "twinkleTime" : [1.0, 1.5], > "spaceThreatLevel" : 3 404c405,406 < "twinkleTime" : [1.0, 1.5] --- > "twinkleTime" : [1.0, 1.5], > "spaceThreatLevel" : 3 497c499,500 < "twinkleTime" : [1.0, 1.5] --- > "twinkleTime" : [1.0, 1.5], > "spaceThreatLevel" : 4 593c596,597 < "twinkleTime" : [1.0, 1.5] --- > "twinkleTime" : [1.0, 1.5], > "spaceThreatLevel" : 5 690c694,695 < "twinkleTime" : [1.0, 1.5] --- > "twinkleTime" : [1.0, 1.5], > "spaceThreatLevel" : 6 client.config 7a8,11 > // padding (in tiles) around the window where weather particles will be spawned > // and outside of which particles will be culled > "particleRegionPadding" : 8, > 62a67 > "deployCinematic" : "/cinematics/teleport/deploy_.cinematic", 107c112 < "maxFrameSkip" : 3, --- > "maxFrameSkip" : 2, dungeon_worlds.config 265a266,446 > "playerstation" : { > "primaryDungeon" : "playerstation", > "threatLevel" : 6, > "gravity" : 0, > "airless" : true, > "worldSize" : [1650, 500], > "dungeonBaseHeight" : 300, > "dungeonSurfaceHeight" : 300, > "ambientLightLevel" : [32, 32, 32], > "ambientNoises" : "/sfx/environmental/space_loop4.ogg", > "musicTrack" : "/music/jupiter.ogg", > "environmentStatusEffects" : ["dontstarve"], > "worldEdgeForceRegions" : "TopAndBottom", > "biome" : "space" > }, > > "spaceencounter" : { > "primaryDungeon" : "spaceencounter", > "threatLevel" : 3, > "gravity" : 0, > "worldSize" : [1200, 200], > "dungeonBaseHeight" : 150, > "dungeonSurfaceHeight" : 150, > "ambientLightLevel" : [32, 32, 32], > "ambientNoises" : "/sfx/environmental/space_loop4.ogg", > "musicTrack" : "/music/lava-exploration1.ogg", > "environmentStatusEffects" : ["dontstarve"], > "worldEdgeForceRegions" : "TopAndBottom", > "biome" : "space" > }, > > "spaceshiptest" : { > "primaryDungeon" : "derelictship", > "threatLevel" : 6, > "gravity" : 0, > "worldSize" : [1300, 200], > "dungeonBaseHeight" : 150, > "dungeonSurfaceHeight" : 150, > "ambientLightLevel" : [32, 32, 32], > "ambientNoises" : "/sfx/environmental/space_loop4.ogg", > "musicTrack" : "/music/lava-exploration1.ogg", > "environmentStatusEffects" : ["dontstarve"], > "worldEdgeForceRegions" : "TopAndBottom", > "biome" : "space" > }, > > "pirateship" : { > "primaryDungeon" : "pirateship", > "threatLevel" : 3, > "gravity" : 0, > "worldSize" : [1300, 200], > "dungeonBaseHeight" : 150, > "dungeonSurfaceHeight" : 150, > "ambientLightLevel" : [32, 32, 32], > "ambientNoises" : "/sfx/environmental/space_loop4.ogg", > "musicTrack" : "/music/lava-exploration1.ogg", > "environmentStatusEffects" : ["dontstarve"], > "worldEdgeForceRegions" : "TopAndBottom", > "biome" : "space" > }, > > "researchship" : { > "primaryDungeon" : "researchship", > "threatLevel" : 3, > "gravity" : 0, > "worldSize" : [1300, 200], > "dungeonBaseHeight" : 150, > "dungeonSurfaceHeight" : 150, > "ambientLightLevel" : [32, 32, 32], > "ambientNoises" : "/sfx/environmental/space_loop4.ogg", > "musicTrack" : "/music/lava-exploration1.ogg", > "environmentStatusEffects" : ["dontstarve"], > "worldEdgeForceRegions" : "TopAndBottom", > "biome" : "space" > }, > > "cultistship" : { > "primaryDungeon" : "cultistship", > "threatLevel" : 3, > "gravity" : 0, > "worldSize" : [1300, 200], > "dungeonBaseHeight" : 150, > "dungeonSurfaceHeight" : 150, > "ambientLightLevel" : [32, 32, 32], > "ambientNoises" : "/sfx/environmental/space_loop4.ogg", > "musicTrack" : "/music/lava-exploration1.ogg", > "environmentStatusEffects" : ["dontstarve"], > "worldEdgeForceRegions" : "TopAndBottom", > "biome" : "space" > }, > > "spacestation_electronics" : { > "primaryDungeon" : "spacestation_electronics", > "threatLevel" : 1, > "gravity" : 0, > "worldSize" : [1200, 500], > "dungeonBaseHeight" : 300, > "dungeonSurfaceHeight" : 300, > "ambientLightLevel" : [32, 32, 32], > "ambientNoises" : "/sfx/environmental/space_loop4.ogg", > "musicTrack" : "/music/tranquility-base.ogg", > "environmentStatusEffects" : ["dontstarve"], > "worldEdgeForceRegions" : "TopAndBottom", > "biome" : "space" > }, > > "spacestation_food" : { > "primaryDungeon" : "spacestation_food", > "threatLevel" : 1, > "gravity" : 0, > "worldSize" : [1200, 500], > "dungeonBaseHeight" : 300, > "dungeonSurfaceHeight" : 300, > "ambientLightLevel" : [32, 32, 32], > "ambientNoises" : "/sfx/environmental/space_loop4.ogg", > "musicTrack" : "/music/tranquility-base.ogg", > "environmentStatusEffects" : ["dontstarve"], > "worldEdgeForceRegions" : "TopAndBottom", > "biome" : "space" > }, > > "spacestation_medical" : { > "primaryDungeon" : "spacestation_medical", > "threatLevel" : 1, > "gravity" : 0, > "worldSize" : [1200, 500], > "dungeonBaseHeight" : 300, > "dungeonSurfaceHeight" : 300, > "ambientLightLevel" : [32, 32, 32], > "ambientNoises" : "/sfx/environmental/space_loop4.ogg", > "musicTrack" : "/music/tranquility-base.ogg", > "environmentStatusEffects" : ["dontstarve"], > "worldEdgeForceRegions" : "TopAndBottom", > "biome" : "space" > }, > > "spacestation_weapons" : { > "primaryDungeon" : "spacestation_weapons", > "threatLevel" : 1, > "gravity" : 0, > "worldSize" : [1200, 500], > "dungeonBaseHeight" : 300, > "dungeonSurfaceHeight" : 300, > "ambientLightLevel" : [32, 32, 32], > "ambientNoises" : "/sfx/environmental/space_loop4.ogg", > "musicTrack" : "/music/tranquility-base.ogg", > "environmentStatusEffects" : ["dontstarve"], > "worldEdgeForceRegions" : "TopAndBottom", > "biome" : "space" > }, > > "mechtestbasic" : { > "primaryDungeon" : "mechtestbasic", > "threatLevel" : 1, > "gravity" : 0, > "worldSize" : [1200, 500], > "dungeonBaseHeight" : 300, > "dungeonSurfaceHeight" : 300, > "ambientLightLevel" : [32, 32, 32], > "ambientNoises" : "/sfx/environmental/space_loop4.ogg", > "musicTrack" : "/music/lava-exploration1.ogg", > "environmentStatusEffects" : ["dontstarve"], > "worldEdgeForceRegions" : "TopAndBottom", > "biome" : "space" > }, > > "mechtestadvanced" : { > "primaryDungeon" : "mechtestadvanced", > "threatLevel" : 5, > "gravity" : 0, > "worldSize" : [1200, 500], > "dungeonBaseHeight" : 300, > "dungeonSurfaceHeight" : 300, > "ambientLightLevel" : [32, 32, 32], > "ambientNoises" : "/sfx/environmental/space_loop4.ogg", > "musicTrack" : "/music/lava-exploration1.ogg", > "environmentStatusEffects" : ["dontstarve"], > "worldEdgeForceRegions" : "TopAndBottom", > "biome" : "space" > }, > help.config 60c60 < "cinema" : "Usage /cinema cinematicPath. Plays the specified cinematic for testing.", --- > "cinema" : "Usage /cinema cinematicPath [timestamp]. Plays the specified cinematic for testing, optionally starting at the specified timestamp.", instance_worlds.config 861a862,1249 > "spaceencounter" : { > "type" : "FloatingDungeon", > "dungeonWorld" : "spaceencounter", > "beamUpRule" : "Anywhere", > "disableDeathDrops" : true, > > "tempWorldDeleteTime" : 600000, > > "skyParameters" : { > "dayLength" : 10000, > "surfaceLevel" : 1000, > "spaceLevel" : 3000, > "seed" : -5288806180628666923, > > "skyType" : "barren", > "skyColoring" : { > "mainColor" : [200, 200, 255], > > "morningColors" : [[200, 200, 255], [200, 200, 255]], > "dayColors" : [[200, 200, 255], [200, 200, 255]], > "eveningColors" : [[200, 200, 255], [200, 200, 255]], > "nightColors" : [[200, 200, 255], [200, 200, 255]], > > "morningLightColor" : [120, 120, 120], > "dayLightColor" : [120, 120, 120], > "eveningLightColor" : [120, 120, 120], > "nightLightColor" : [120, 120, 120] > } > } > }, > > "spaceshiptest" : { > "type" : "FloatingDungeon", > "dungeonWorld" : "cultistship", > "beamUpRule" : "Anywhere", > "disableDeathDrops" : true, > > "skyParameters" : { > "dayLength" : 10000, > "surfaceLevel" : 1000, > "spaceLevel" : 3000, > "seed" : -5288806180628666923, > > "skyType" : "barren", > "skyColoring" : { > "mainColor" : [200, 200, 255], > > "morningColors" : [[200, 200, 255], [200, 200, 255]], > "dayColors" : [[200, 200, 255], [200, 200, 255]], > "eveningColors" : [[200, 200, 255], [200, 200, 255]], > "nightColors" : [[200, 200, 255], [200, 200, 255]], > > "morningLightColor" : [120, 120, 120], > "dayLightColor" : [120, 120, 120], > "eveningLightColor" : [120, 120, 120], > "nightLightColor" : [120, 120, 120] > } > } > }, > > "pirateship" : { > "type" : "FloatingDungeon", > "dungeonWorld" : "pirateship", > "beamUpRule" : "Anywhere", > "disableDeathDrops" : true, > > "tempWorldDeleteTime" : 600000, > > "skyParameters" : { > "dayLength" : 10000, > "surfaceLevel" : 1000, > "spaceLevel" : 3000, > "seed" : -5288806180628666923, > > "skyType" : "barren", > "skyColoring" : { > "mainColor" : [200, 200, 255], > > "morningColors" : [[200, 200, 255], [200, 200, 255]], > "dayColors" : [[200, 200, 255], [200, 200, 255]], > "eveningColors" : [[200, 200, 255], [200, 200, 255]], > "nightColors" : [[200, 200, 255], [200, 200, 255]], > > "morningLightColor" : [120, 120, 120], > "dayLightColor" : [120, 120, 120], > "eveningLightColor" : [120, 120, 120], > "nightLightColor" : [120, 120, 120] > } > } > }, > > "researchship" : { > "type" : "FloatingDungeon", > "dungeonWorld" : "researchship", > "beamUpRule" : "Anywhere", > "disableDeathDrops" : true, > > "tempWorldDeleteTime" : 600000, > > "skyParameters" : { > "dayLength" : 10000, > "surfaceLevel" : 1000, > "spaceLevel" : 3000, > "seed" : -5288806180628666923, > > "skyType" : "barren", > "skyColoring" : { > "mainColor" : [200, 200, 255], > > "morningColors" : [[200, 200, 255], [200, 200, 255]], > "dayColors" : [[200, 200, 255], [200, 200, 255]], > "eveningColors" : [[200, 200, 255], [200, 200, 255]], > "nightColors" : [[200, 200, 255], [200, 200, 255]], > > "morningLightColor" : [120, 120, 120], > "dayLightColor" : [120, 120, 120], > "eveningLightColor" : [120, 120, 120], > "nightLightColor" : [120, 120, 120] > } > } > }, > > "cultistship" : { > "type" : "FloatingDungeon", > "dungeonWorld" : "cultistship", > "beamUpRule" : "Anywhere", > "disableDeathDrops" : true, > > "tempWorldDeleteTime" : 600000, > > "skyParameters" : { > "dayLength" : 10000, > "surfaceLevel" : 1000, > "spaceLevel" : 3000, > "seed" : -5288806180628666923, > > "skyType" : "barren", > "skyColoring" : { > "mainColor" : [200, 200, 255], > > "morningColors" : [[200, 200, 255], [200, 200, 255]], > "dayColors" : [[200, 200, 255], [200, 200, 255]], > "eveningColors" : [[200, 200, 255], [200, 200, 255]], > "nightColors" : [[200, 200, 255], [200, 200, 255]], > > "morningLightColor" : [120, 120, 120], > "dayLightColor" : [120, 120, 120], > "eveningLightColor" : [120, 120, 120], > "nightLightColor" : [120, 120, 120] > } > } > }, > > "playerstation" : { > "type" : "FloatingDungeon", > "dungeonWorld" : "playerstation", > "spawningEnabled" : false, > "beamUpRule" : "Anywhere", > "disableDeathDrops" : true, > "persistent" : true, > > "skyParameters" : { > "dayLength" : 10000, > "surfaceLevel" : 1000, > "spaceLevel" : 3000, > "seed" : -5288806180628666923, > > "skyType" : "barren", > "skyColoring" : { > "mainColor" : [200, 200, 255], > > "morningColors" : [[200, 200, 255], [200, 200, 255]], > "dayColors" : [[200, 200, 255], [200, 200, 255]], > "eveningColors" : [[200, 200, 255], [200, 200, 255]], > "nightColors" : [[200, 200, 255], [200, 200, 255]], > > "morningLightColor" : [120, 120, 120], > "dayLightColor" : [120, 120, 120], > "eveningLightColor" : [120, 120, 120], > "nightLightColor" : [120, 120, 120] > } > } > }, > > "spacestation_electronics" : { > "type" : "FloatingDungeon", > "dungeonWorld" : "spacestation_electronics", > "spawningEnabled" : false, > "beamUpRule" : "Anywhere", > "disableDeathDrops" : true, > "persistent" : true, > > // "tempWorldDeleteTime" : 0, > > "skyParameters" : { > "dayLength" : 10000, > "surfaceLevel" : 1000, > "spaceLevel" : 3000, > "seed" : -5288806180628666923, > > "skyType" : "barren", > "skyColoring" : { > "mainColor" : [200, 200, 255], > > "morningColors" : [[200, 200, 255], [200, 200, 255]], > "dayColors" : [[200, 200, 255], [200, 200, 255]], > "eveningColors" : [[200, 200, 255], [200, 200, 255]], > "nightColors" : [[200, 200, 255], [200, 200, 255]], > > "morningLightColor" : [120, 120, 120], > "dayLightColor" : [120, 120, 120], > "eveningLightColor" : [120, 120, 120], > "nightLightColor" : [120, 120, 120] > } > } > }, > > "spacestation_food" : { > "type" : "FloatingDungeon", > "dungeonWorld" : "spacestation_food", > "spawningEnabled" : false, > "beamUpRule" : "Anywhere", > "disableDeathDrops" : true, > "persistent" : true, > > // "tempWorldDeleteTime" : 0, > > "skyParameters" : { > "dayLength" : 10000, > "surfaceLevel" : 1000, > "spaceLevel" : 3000, > "seed" : -5288806180628666923, > > "skyType" : "barren", > "skyColoring" : { > "mainColor" : [200, 200, 255], > > "morningColors" : [[200, 200, 255], [200, 200, 255]], > "dayColors" : [[200, 200, 255], [200, 200, 255]], > "eveningColors" : [[200, 200, 255], [200, 200, 255]], > "nightColors" : [[200, 200, 255], [200, 200, 255]], > > "morningLightColor" : [120, 120, 120], > "dayLightColor" : [120, 120, 120], > "eveningLightColor" : [120, 120, 120], > "nightLightColor" : [120, 120, 120] > } > } > }, > > "spacestation_medical" : { > "type" : "FloatingDungeon", > "dungeonWorld" : "spacestation_medical", > "spawningEnabled" : false, > "beamUpRule" : "Anywhere", > "disableDeathDrops" : true, > "persistent" : true, > > // "tempWorldDeleteTime" : 0, > > "skyParameters" : { > "dayLength" : 10000, > "surfaceLevel" : 1000, > "spaceLevel" : 3000, > "seed" : -5288806180628666923, > > "skyType" : "barren", > "skyColoring" : { > "mainColor" : [200, 200, 255], > > "morningColors" : [[200, 200, 255], [200, 200, 255]], > "dayColors" : [[200, 200, 255], [200, 200, 255]], > "eveningColors" : [[200, 200, 255], [200, 200, 255]], > "nightColors" : [[200, 200, 255], [200, 200, 255]], > > "morningLightColor" : [120, 120, 120], > "dayLightColor" : [120, 120, 120], > "eveningLightColor" : [120, 120, 120], > "nightLightColor" : [120, 120, 120] > } > } > }, > > "spacestation_weapons" : { > "type" : "FloatingDungeon", > "dungeonWorld" : "spacestation_weapons", > "spawningEnabled" : false, > "beamUpRule" : "Anywhere", > "disableDeathDrops" : true, > "persistent" : true, > > // "tempWorldDeleteTime" : 0, > > "skyParameters" : { > "dayLength" : 10000, > "surfaceLevel" : 1000, > "spaceLevel" : 3000, > "seed" : -5288806180628666923, > > "skyType" : "barren", > "skyColoring" : { > "mainColor" : [200, 200, 255], > > "morningColors" : [[200, 200, 255], [200, 200, 255]], > "dayColors" : [[200, 200, 255], [200, 200, 255]], > "eveningColors" : [[200, 200, 255], [200, 200, 255]], > "nightColors" : [[200, 200, 255], [200, 200, 255]], > > "morningLightColor" : [120, 120, 120], > "dayLightColor" : [120, 120, 120], > "eveningLightColor" : [120, 120, 120], > "nightLightColor" : [120, 120, 120] > } > } > }, > > "mechtestbasic" : { > "type" : "FloatingDungeon", > "dungeonWorld" : "mechtestbasic", > "spawningEnabled" : false, > "beamUpRule" : "AnywhereWithWarning", > "disableDeathDrops" : true, > > "worldProperties" : { > "mechTempItemSet" : { > "body" : "mechbodyhero", > "booster" : "mechboostersleek", > "legs" : "mechlegssleek", > "leftArm" : "mecharmcannon", > "rightArm" : "mecharmshielddrone" > }, > "mechTempPrimaryColorIndex" : 4, > "mechTempSecondaryColorIndex" : 3 > }, > > "skyParameters" : { > "dayLength" : 10000, > "surfaceLevel" : 1000, > "spaceLevel" : 3000, > "seed" : -5288806180628666923, > > "skyType" : "barren", > "skyColoring" : { > "mainColor" : [200, 200, 255], > > "morningColors" : [[200, 200, 255], [200, 200, 255]], > "dayColors" : [[200, 200, 255], [200, 200, 255]], > "eveningColors" : [[200, 200, 255], [200, 200, 255]], > "nightColors" : [[200, 200, 255], [200, 200, 255]], > > "morningLightColor" : [200, 200, 200], > "dayLightColor" : [200, 200, 200], > "eveningLightColor" : [200, 200, 200], > "nightLightColor" : [200, 200, 200] > } > } > }, > > "mechtestadvanced" : { > "type" : "FloatingDungeon", > "dungeonWorld" : "mechtestadvanced", > "spawningEnabled" : false, > "beamUpRule" : "AnywhereWithWarning", > "disableDeathDrops" : true, > > "skyParameters" : { > "dayLength" : 10000, > "surfaceLevel" : 1000, > "spaceLevel" : 3000, > "seed" : -5288806180628666923, > > "skyType" : "barren", > "skyColoring" : { > "mainColor" : [200, 200, 255], > > "morningColors" : [[200, 200, 255], [200, 200, 255]], > "dayColors" : [[200, 200, 255], [200, 200, 255]], > "eveningColors" : [[200, 200, 255], [200, 200, 255]], > "nightColors" : [[200, 200, 255], [200, 200, 255]], > > "morningLightColor" : [200, 200, 200], > "dayLightColor" : [200, 200, 200], > "eveningLightColor" : [200, 200, 200], > "nightLightColor" : [200, 200, 200] > } > } > }, > interface.config 105c105 < "size" : [22, 145], --- > "size" : [22, 165], 111,112c111,112 < "pos" : [0, 120], < "poly" : [ [0, 120], [17, 120], [17, 137], [0, 137] ] --- > "pos" : [0, 140], > "poly" : [ [0, 140], [17, 140], [17, 157], [0, 157] ] 119,120c119,120 < "pos" : [0, 100], < "poly" : [ [0, 100], [17, 100], [17, 117], [0, 117] ] --- > "pos" : [0, 120], > "poly" : [ [0, 120], [17, 120], [17, 137], [0, 137] ] 127,128c127,128 < "pos" : [0, 80], < "poly" : [ [0, 80], [17, 80], [17, 97], [0, 97] ] --- > "pos" : [0, 100], > "poly" : [ [0, 100], [17, 100], [17, 117], [0, 117] ] 135,136c135,136 < "pos" : [0, 60], < "poly" : [ [0, 60], [17, 60], [17, 77], [0, 77] ] --- > "pos" : [0, 80], > "poly" : [ [0, 80], [17, 80], [17, 97], [0, 97] ] 143,144c143,144 < "pos" : [0, 40], < "poly" : [ [0, 40], [17, 40], [17, 57], [0, 57] ] --- > "pos" : [0, 60], > "poly" : [ [0, 60], [17, 60], [17, 77], [0, 77] ] 151a152,158 > "pos" : [0, 40], > "poly" : [ [0, 40], [17, 40], [17, 57], [0, 57] ] > }, > "deploy" : { > "base" : "/interface/deploy.png", > "hover" : "/interface/deployhover.png", > "disabled" : "/interface/beamno.png", 154a162,166 > // beam up uses deploy button poly > "beamUp" : { > "base" : "/interface/beamup.png", > "hover" : "/interface/beamuphover.png" > }, 156,158c168,169 < "base" : [ "/interface/beamup.png", "/interface/beamdown.png" ], < "hover" : [ "/interface/beamuphover.png", "/interface/beamdownhover.png" ], < "disabled" : "/interface/beamno.png", --- > "base" : "/interface/beamdown.png", > "hover" : "/interface/beamdownhover.png", 295a307 > "deployText" : "Deploy Mech", metamaterials.config 29c29 < "collisionKind" : "dynamic" --- > "collisionKind" : "block" 35a36,40 > }, > { > "name" : "expansionslot", > "materialId" : 65030, > "collisionKind" : "slippery" player.config 331a332 > { "item" : "railtramstop" }, 333a335 > { "item" : "stationtram" }, 441a444 > "flySpeed" : 0, 449a453,459 > "zeroGMovementParameters" : { > "flySpeed" : 1.5, > "airForce" : 0.75, > "airFriction" : 0, > "bounceFactor" : 0.3 > }, > 671c681,684 < "teleportOutTime" : 0.75, --- > "teleportOutTime" : 1.0, > > "deployInTime" : 0.4, > "deployOutTime" : 2.0, 723a737,776 > }, > > "deploymentConfig" : { > "scripts" : [ > "/scripts/deployment/playermechdeployment.lua" > ], > "scriptDelta" : 1, > > "starterMechSet" : { > "leftArm" : "mecharmflakcannon", > "rightArm" : "mecharmdrill", > "body" : "mechbodyhumanproto", > "booster" : "mechboostersimple", > "legs" : "mechlegssimple" > }, > "speciesStarterMechBody" : { > "apex" : "mechbodyapexproto", > "avian" : "mechbodyavianproto", > "floran" : "mechbodyfloranproto", > "glitch" : "mechbodyglitchproto", > "human" : "mechbodyhumanproto", > "hylotl" : "mechbodyhylotlproto", > "novakid" : "mechbodynovakidproto" > }, > > "enemyDetectRadius" : 80, > "enemyDetectTypeNames" : [ > "trifangle", > "cosmostache", > "chiropterror", > "masteroid", > "masteroidmid", > "masteroidlarge", > "heavydrone", > "omnicannon", > "twigun" > ], > "lowEnergyThreshold" : 0.25, > "lowEnergySound" : "/sfx/interface/mech_energy_low.ogg", > "lowEnergyFlashTime" : 1.0 rendering.config 11a12,14 > // padding (in pixels) around the window where particles will be drawn > "particleRenderWindowPadding" : 64, > sky.config 4d3 < "skyMaxAlpha" : 0.9, 11c10 < "speedupTimer" : 8.0, --- > "speedupTimer" : 1.0, 13c12 < "slowdownTimer" : 8.0, --- > "slowdownTimer" : 1.0, 25a25,34 > "spaceDisembarkOrigin" : { > "offset" : [0, 0], "rotation" : 0.0 > }, > > "spaceDisembarkPath" : [ > { > "offset" : [1000.0, 0], "rotation": 0.0, "time" : 1.0 > } > ], > 35a45,80 > "spaceArrivalOrigin" : { > "offset" : [-1000.0, 0], "rotation" : 0.0 > }, > > "spaceArrivalPath" : [ > { > "offset" : [0, 0], "rotation": 0.0, "time" : 2.0 > } > ], > > // Sped up for testing > // "speedupTimer" : 0.5, > // "flyingTimer" : 1.0, > // "slowdownTimer" : 0.5, > // "flashTimer" : 1.0, > // "disembarkOrigin" : { > // "offset" : [0, 0], "rotation" : 0 > // }, > // > // "disembarkPath" : [ > // { > // // where you're going, how are you rotated in degrees, how much time does it take to get there > // "offset" : [300, 300], "rotation" : -45.0, "time" : 0.5 > // } > // ], > // > // "arrivalOrigin" : { > // "offset" : [-300, 300], "rotation" : 45.0 > // }, > // > // "arrivalPath" : [ > // { > // "offset" : [0, 0], "rotation" : 0, "time" : 0.5 > // } > // ], > 61d105 < "animationSpeedRange" : [-5, 5], 80d123 < "animationSpeedRange" : [-5, 5], 99d141 < "animationSpeedRange" : [-5, 5], 118d159 < "animationSpeedRange" : [0.0, 0.0], terrestrial_worlds.config 49a50,51 > "worldEdgeForceRegions" : "Top", > universeflags.config 56,61d55 < "dungeonId" : "outpost_weaponshop", < "targetInstance" : "outpost", < "targetPosition" : [364, 588] < }, < { < "type" : "placeDungeon", 146a141,150 > } > ] > }, > "outpost_weaponshop" : { > "actions" : [ > { > "type" : "placeDungeon", > "dungeonId" : "outpost_weaponshop", > "targetInstance" : "outpost", > "targetPosition" : [364, 588] universe_server.config 36a37,38 > "queuedFlightWaitTime" : 45.0, > versioning.config 3c3,4 < "WorldMetadata" : 23, --- > "WorldMetadata" : 26, > "System" : 1, 5,6c6,8 < "ClientContext" : 5, < "CelestialChunk" : 10, --- > "TempWorldIndex" : 1, > "ClientContext" : 6, > "CelestialChunk" : 12, 9c11 < "PlayerEntity" : 28, --- > "PlayerEntity" : 29, worldserver.config 79a80,83 > "playerSpaceStartRegionSize" : [6, 8], > "playerSpaceStartDistanceIncrement" : 5, > "playerSpaceStartMaximumTries" : 40, > 91c95,99 < "fallingBlocksImmediateUpwardPropogateProbability" : 0.6 --- > "fallingBlocksImmediateUpwardPropogateProbability" : 0.6, > > "worldEdgeForceRegionHeight" : 15, > "worldEdgeForceRegionVelocity" : 40, > "worldEdgeForceRegionForce" : 2000 worldstorage.config 2c2 < "sectorTimeToLive" : 10.0, --- > "sectorTimeToLive" : [9.0, 11.0], _metadata 2,3d1 < "name" : "base", < "friendlyName" : "Base Game Assets", 5c3,5 < "priority" : -9999 --- > "name" : "base", > "priority" : -9999, > "friendlyName" : "Base Game Assets" achievements\achievement.lua 22c22 < args = parseArgs(args, { --- > args = applyDefaults(args, { 30c30 < args = parseArgs(args, { --- > args = applyDefaults(args, { 38c38 < args = parseArgs(args, { --- > args = applyDefaults(args, { achievements\event.lua 52c52 < defaults = parseArgs(defaults, { --- > defaults = applyDefaults(defaults, { 58c58 < args = parseArgs(args, defaults) --- > args = applyDefaults(args, defaults) behaviors\monsters\tracking.behavior 2a3 > "description": "", 4,5d4 < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", 7c6,8 < "/scripts/behavior.lua" --- > "/scripts/actions/world.lua", > "/scripts/behavior.lua", > "/scripts/actions/query.lua" 12,14c13 < "entityTypes": [ < "player" < ], --- > "entityTypes": ["player"], 58,59c57,58 < "entity": "damageSource", < "types": "" --- > "entity": {"key": "damageSource"}, > "types": {"key": ""} 67c66 < "entity": "damageSource" --- > "entity": {"key": "damageSource"} 91c90 < "list": "targets" --- > "list": {"key": "targets"} 100c99 < "cooldown": 1 --- > "cooldown": {"value": 1} 107,108c106,107 < "entityTypes": "", < "range": "" --- > "entityTypes": {"key": ""}, > "range": {"key": ""} 120c119 < "entity": "newTarget" --- > "entity": {"key": "newTarget"} 138,139c137,138 < "list": "targets", < "entity": "newTarget" --- > "entity": {"key": "newTarget"}, > "list": {"key": "targets"} 147,148c146,150 < "list": "targets", < "entity": "newTarget" --- > "entity": {"key": "newTarget"}, > "list": {"key": "targets"} > }, > "output": { > "list": "targets" 160c162 < "untilSuccess": true --- > "untilSuccess": {"value": true} 179c181 < "list": "targets" --- > "list": {"key": "targets"} 190c192 < "entity": "target" --- > "entity": {"key": "target"} 198,199c200,201 < "entity": "target", < "range": "" --- > "entity": {"key": "target"}, > "range": {"key": ""} 212c214 < "shouldRun": "" --- > "shouldRun": {"key": ""} 224c226 < "entity": "target" --- > "entity": {"key": "target"} 241a244,246 > "list": {"key": "targets"} > }, > "output": { 256c261 < "list": "targets" --- > "list": {"key": "targets"} behaviors\monsters\boss\apeboss\apeboss.behavior 14c14,15 < "/scripts/actions/time.lua" --- > "/scripts/actions/time.lua", > "/scripts/behavior.lua" 19,28d19 < "minX": -15, < "maxX": 15, < "leftEyeOffset": [ < -2.5, < 1 < ], < "rightEyeOffset": [ < 2.5, < 1 < ], 42c33 < "shouldDie": false --- > "shouldDie": {"value": false} 50,52c41,43 < "count": "", < "distance": "", < "monsterType": "apebossprojector" --- > "count": {"key": ""}, > "distance": {"key": ""}, > "monsterType": {"value": "apebossprojector"} 63,64c54,55 < "list": "projectors", < "type": "entity" --- > "list": {"key": "projectors"}, > "type": {"value": "entity"} 76,77c67,68 < "entity": "eachItem", < "message": "startSpawnSequence" --- > "entity": {"key": "eachItem"}, > "message": {"value": "startSpawnSequence"} 87,88c78,79 < "state": "spawnidle", < "type": "body" --- > "state": {"value": "spawnidle"}, > "type": {"value": "body"} 96,97c87,88 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 105,113c96,102 < "targetQueryRange": 80, < "keepTargetInRange": 100, < "targetEntityTypes": [ < "player" < ], < "keepTargetInSight": true, < "queryTargets": true, < "targetOnDamage": true, < "targetOutOfSightTime": 1 --- > "targetQueryRange": {"value": 80}, > "keepTargetInRange": {"value": 100}, > "targetEntityTypes": {"value": ["player"]}, > "keepTargetInSight": {"value": true}, > "queryTargets": {"value": true}, > "targetOnDamage": {"value": true}, > "targetOutOfSightTime": {"value": 1} 121,122c110,111 < "list": "projectors", < "type": "entity" --- > "list": {"key": "projectors"}, > "type": {"value": "entity"} 134,140c123,124 < "entity": "eachItem", < "region": [ < -16, < -16, < 16, < 16 < ] --- > "entity": {"key": "eachItem"}, > "region": {"value": [-16, -16, 16, 16]} 149,154c133 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 161,162c140,141 < "list": "projectors", < "type": "entity" --- > "list": {"key": "projectors"}, > "type": {"value": "entity"} 168,173c147 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 180c154 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 188c162 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 199,200c173,174 < "first": "projectorHealth", < "second": 0 --- > "first": {"key": "projectorHealth"}, > "second": {"value": 0} 211c185 < "list": "projectors" --- > "list": {"key": "projectors"} 224c198 < "direction": 1 --- > "direction": {"value": 1} 238,239c212,213 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 247c221 < "entity": "target" --- > "entity": {"key": "target"} 261,262c235,236 < "count": 4, < "projectorList": "projectors" --- > "count": {"value": 4}, > "projectorList": {"key": "projectors"} 273,274c247,248 < "percentage": "projectorHealth", < "resource": "health" --- > "percentage": {"key": "projectorHealth"}, > "resource": {"value": "health"} 283,288c257 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 295c264 < "type": "Special" --- > "type": {"value": "Special"} 303c272 < "enable": true --- > "enable": {"value": true} 322c291 < "limit": 1 --- > "limit": {"value": 1} 328,333c297 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 340,341c304,305 < "projectorList": "projectors", < "speed": 10 --- > "projectorList": {"key": "projectors"}, > "speed": {"value": 10} 349,350c313,314 < "list": "projectors", < "type": "entity" --- > "list": {"key": "projectors"}, > "type": {"value": "entity"} 362,363c326,327 < "entity": "eachItem", < "message": "stopSpawnSequence" --- > "entity": {"key": "eachItem"}, > "message": {"value": "stopSpawnSequence"} 373c337 < "time": "" --- > "time": {"value": ""} 384,385c348,349 < "state": "spawn", < "type": "body" --- > "state": {"value": "spawn"}, > "type": {"value": "body"} 393c357,365 < "time": "" --- > "time": {"value": ""} > } > }, > { > "title": "setFlag", > "type": "action", > "name": "setFlag", > "parameters": { > "name": {"value": "hasSpawned"} 401,402c373,374 < "list": "projectors", < "type": "entity" --- > "list": {"key": "projectors"}, > "type": {"value": "entity"} 414,415c386,387 < "entity": "eachItem", < "message": "heal" --- > "entity": {"key": "eachItem"}, > "message": {"value": "heal"} 429,430c401,402 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 438,439c410,411 < "first": "projectorCount", < "second": 3 --- > "first": {"key": "projectorCount"}, > "second": {"value": 3} 446,451c418 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 458,461c425,427 < "glitch": false, < "projectorList": "projectors", < "projectorSpeed": 10, < "stage": "stage1" --- > "projectorList": {"key": "projectors"}, > "stage": {"value": "stage1"}, > "projectorSpeed": {"value": 10} 469,470c435,436 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 476,481c442 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 488,489c449,450 < "fistLaunchTime": 1.5, < "fistCount": 2 --- > "fistLaunchTime": {"value": 1.5}, > "fistCount": {"value": 2} 503,505c464,466 < "projectorList": "projectors", < "projectorSpeed": 20, < "sweepSpeed": 14 --- > "projectorList": {"key": "projectors"}, > "projectorSpeed": {"value": 20}, > "sweepSpeed": {"value": 14} 513,516c474,477 < "missileAttackWindup": 0.3, < "missileAttackTime": 5, < "projectorList": "projectors", < "target": "target" --- > "missileAttackTime": {"value": 5}, > "missileAttackWindup": {"value": 0.3}, > "projectorList": {"key": "projectors"}, > "target": {"key": "target"} 531,532c492,493 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 540,541c501,502 < "first": "projectorCount", < "second": 2 --- > "first": {"key": "projectorCount"}, > "second": {"value": 2} 548,553c509 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 560,563c516,518 < "glitch": true, < "projectorList": "projectors", < "projectorSpeed": 15, < "stage": "stage2" --- > "projectorList": {"key": "projectors"}, > "stage": {"value": "stage2"}, > "projectorSpeed": {"value": 15} 571c526 < "waves": 3 --- > "waves": {"value": 3} 579,580c534,535 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 586,591c541 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 598,599c548,549 < "fistLaunchTime": 1.5, < "fistCount": 3 --- > "fistLaunchTime": {"value": 1.5}, > "fistCount": {"value": 3} 613,615c563,565 < "projectorList": "projectors", < "projectorSpeed": 30, < "sweepSpeed": 14 --- > "projectorList": {"key": "projectors"}, > "projectorSpeed": {"value": 30}, > "sweepSpeed": {"value": 14} 623,626c573,576 < "missileAttackTime": 5, < "missileAttackWindup": 0.3, < "projectorList": "projectors", < "target": "target" --- > "missileAttackTime": {"value": 5}, > "missileAttackWindup": {"value": 0.3}, > "projectorList": {"key": "projectors"}, > "target": {"key": "target"} 641,642c591,592 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 650,651c600,601 < "first": "projectorCount", < "second": 1 --- > "first": {"key": "projectorCount"}, > "second": {"value": 1} 658,663c608 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 670,673c615,617 < "glitch": true, < "projectorList": "projectors", < "projectorSpeed": 20, < "stage": "stage3" --- > "projectorList": {"key": "projectors"}, > "stage": {"value": "stage3"}, > "projectorSpeed": {"value": 20} 681c625 < "waves": 5 --- > "waves": {"value": 5} 689,690c633,634 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 696,701c640 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 714,715c653,654 < "fistLaunchTime": 1.5, < "fistCount": 4 --- > "fistLaunchTime": {"value": 1.5}, > "fistCount": {"value": 4} 723,726c662,665 < "projectorList": "projectors", < "projectorSpeed": 40, < "sweepSpeed": 16, < "sweeps": 2 --- > "projectorList": {"key": "projectors"}, > "projectorSpeed": {"value": 40}, > "sweepSpeed": {"value": 16}, > "sweeps": {"value": 2} 734,738c673,677 < "missileAttackTime": 3.14, < "missileAttackWindup": 0.3, < "projectorList": "projectors", < "target": "target", < "waves": 2 --- > "missileAttackTime": {"value": 3.14}, > "missileAttackWindup": {"value": 0.3}, > "projectorList": {"key": "projectors"}, > "target": {"key": "target"}, > "waves": {"value": 2} 753,754c692,693 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 762,763c701,702 < "first": "projectorCount", < "second": 0 --- > "first": {"key": "projectorCount"}, > "second": {"value": 0} 770,775c709 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 782,785c716,718 < "glitch": true, < "projectorList": "projectors", < "projectorSpeed": 30, < "stage": "stage4" --- > "projectorList": {"key": "projectors"}, > "stage": {"value": "stage4"}, > "projectorSpeed": {"value": 30} 793c726 < "waves": 7 --- > "waves": {"value": 7} 801,802c734,735 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 808,813c741 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 820,824c748,752 < "missileAttackTime": 2.1, < "missileAttackWindup": 0.3, < "projectorList": "projectors", < "target": "target", < "waves": 4 --- > "missileAttackTime": {"value": 2.1}, > "missileAttackWindup": {"value": 0.3}, > "projectorList": {"key": "projectors"}, > "target": {"key": "target"}, > "waves": {"value": 4} 838,839c766,767 < "fistLaunchTime": 1.5, < "fistCount": 5 --- > "fistLaunchTime": {"value": 1.5}, > "fistCount": {"value": 5} 847,850c775,778 < "projectorList": "projectors", < "projectorSpeed": 60, < "sweepSpeed": 18, < "sweeps": 3 --- > "projectorList": {"key": "projectors"}, > "projectorSpeed": {"value": 60}, > "sweepSpeed": {"value": 18}, > "sweeps": {"value": 3} 858c786 < "waves": 3 --- > "waves": {"value": 3} 879c807 < "state": "blue" --- > "state": {"value": "blue"} 887,890c815 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 898,899c823,824 < "state": "death", < "type": "body" --- > "state": {"value": "death"}, > "type": {"value": "body"} 907c832 < "sound": "death" --- > "sound": {"value": "death"} 915c840 < "time": 1.5 --- > "time": {"value": 1.5} 923,924c848,849 < "percentage": 0, < "resource": "health" --- > "percentage": {"value": 0}, > "resource": {"value": "health"} 932c857 < "enable": false --- > "enable": {"value": false} 940c865 < "shouldDie": true --- > "shouldDie": {"value": true} 958,963c883,910 < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", < "parameters": { < "state": "idle", < "type": "body" --- > "title": "succeeder", > "type": "decorator", > "name": "succeeder", > "parameters": {}, > "child": { > "title": "Reset", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "hasFlag", > "type": "action", > "name": "hasFlag", > "parameters": { > "name": {"key": "hasSpawned"} > } > }, > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "state": {"value": "idle"}, > "type": {"value": "body"} > } > } > ] 971,972c918,919 < "type": "stage", < "tag": "stage1" --- > "tag": {"value": "stage1"}, > "type": {"value": "stage"} 980c927 < "enable": false --- > "enable": {"value": false} 988,989c935,936 < "projectorList": "projectors", < "speed": 10 --- > "projectorList": {"key": "projectors"}, > "speed": {"value": 10} 1014,1015c961,962 < "first": "projectorCount", < "second": 3 --- > "first": {"key": "projectorCount"}, > "second": {"value": 3} 1023,1024c970,971 < "list": "projectors", < "type": "entity" --- > "list": {"key": "projectors"}, > "type": {"value": "entity"} 1036,1037c983,984 < "entity": "eachItem", < "message": "heal" --- > "entity": {"key": "eachItem"}, > "message": {"value": "heal"} 1055,1056c1002,1003 < "list": "projectors", < "type": "entity" --- > "list": {"key": "projectors"}, > "type": {"value": "entity"} 1063,1064c1010,1011 < "entity": "eachItem", < "message": "destroy" --- > "entity": {"key": "eachItem"}, > "message": {"value": "destroy"} 1073,1075c1020,1022 < "count": "", < "distance": "", < "monsterType": "apebossprojector" --- > "count": {"key": ""}, > "distance": {"key": ""}, > "monsterType": {"value": "apebossprojector"} 1091,1092c1038,1039 < "position": "spawn", < "tolerance": 1 --- > "position": {"key": "spawn"}, > "tolerance": {"value": 1} 1100,1103c1047 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 1111,1112c1055,1056 < "percentage": 1, < "resource": "health" --- > "percentage": {"value": 1}, > "resource": {"value": "health"} behaviors\monsters\boss\apeboss\circlepattern.behavior 2a3 > "description": "", 7d7 < "/scripts/actions/monster.lua", 9,10d8 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 14,21c12,13 < "leftEyeOffset": [ < -2.5, < 1 < ], < "rightEyeOffset": [ < 2.5, < 1 < ], --- > "leftEyeOffset": [-2.5, 1], > "rightEyeOffset": [2.5, 1], 29,34c21 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 50,51c37,38 < "number": "circleDirection", < "factor": "" --- > "factor": {"key": ""}, > "number": {"key": "circleDirection"} 62,63c49,50 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 69,74c56 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 81c63 < "time": 0.2 --- > "time": {"value": 0.2} 89,90c71,72 < "maxLoops": 4, < "untilSuccess": false --- > "maxLoops": {"value": 4}, > "untilSuccess": {"value": false} 96,101c78 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 108c85 < "sound": "firePellet" --- > "sound": {"value": "firePellet"} 116c93 < "time": 0.02 --- > "time": {"value": 0.02} 124,126c101,103 < "max": "maxAngle", < "min": 0, < "ratio": "" --- > "max": {"key": "maxAngle"}, > "min": {"value": 0}, > "ratio": {"key": ""} 137,141c114,115 < "vector": [ < 1, < 0 < ], < "angle": "spawnAngle" --- > "angle": {"key": "spawnAngle"}, > "vector": {"value": [1, 0]} 152,153c126,127 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 161,170c135,143 < "aimVector": "aimVector", < "angle": 0, < "offset": "", < "position": "self", < "power": 5, < "projectileConfig": {}, < "projectileType": "lightpellet", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"key": "aimVector"}, > "angle": {"value": 0}, > "offset": {"key": ""}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "lightpellet"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 178,182c151,152 < "first": "aimVector", < "second": [ < -1, < 1 < ] --- > "first": {"key": "aimVector"}, > "second": {"value": [-1, 1]} 193,202c163,171 < "aimVector": "aimVector", < "angle": 0, < "offset": "", < "position": "self", < "power": 5, < "projectileConfig": {}, < "projectileType": "lightpellet", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"key": "aimVector"}, > "angle": {"value": 0}, > "offset": {"key": ""}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "lightpellet"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 212,216c181,182 < "first": "aimVector", < "second": [ < -1, < -1 < ] --- > "first": {"key": "aimVector"}, > "second": {"value": [-1, -1]} 227,228c193,194 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 236,245c202,210 < "aimVector": "aimVector", < "angle": 0, < "offset": "", < "position": "self", < "power": 5, < "projectileConfig": {}, < "projectileType": "lightpellet", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"key": "aimVector"}, > "angle": {"value": 0}, > "offset": {"key": ""}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "lightpellet"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 253,257c218,219 < "first": "aimVector", < "second": [ < -1, < 1 < ] --- > "first": {"key": "aimVector"}, > "second": {"value": [-1, 1]} 268,277c230,238 < "aimVector": "aimVector", < "angle": 0, < "offset": "", < "position": "self", < "power": 5, < "projectileConfig": {}, < "projectileType": "lightpellet", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"key": "aimVector"}, > "angle": {"value": 0}, > "offset": {"key": ""}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "lightpellet"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} behaviors\monsters\boss\apeboss\crosspattern.behavior 7d6 < "/scripts/actions/monster.lua", 9,10d7 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 14,21c11,12 < "leftEyeOffset": [ < -2.5, < 1 < ], < "rightEyeOffset": [ < 2.5, < 1 < ], --- > "leftEyeOffset": [-2.5, 1], > "rightEyeOffset": [2.5, 1], 29,30c20,21 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 36,41c27 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 48c34 < "time": 0.15 --- > "time": {"value": 0.15} 56,58c42,44 < "max": -3.14, < "min": 0, < "ratio": "" --- > "max": {"value": -3.14}, > "min": {"value": 0}, > "ratio": {"key": ""} 69,73c55,56 < "vector": [ < 1, < 0 < ], < "angle": "spawnAngle" --- > "angle": {"key": "spawnAngle"}, > "vector": {"value": [1, 0]} 84c67 < "sound": "firePellet" --- > "sound": {"value": "firePellet"} 92,101c75,83 < "aimVector": "aimVector", < "angle": 0, < "offset": "", < "position": "self", < "power": 5, < "projectileConfig": {}, < "projectileType": "lightpellet", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"key": "aimVector"}, > "angle": {"value": 0}, > "offset": {"key": ""}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "lightpellet"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 109,113c91,92 < "first": "aimVector", < "second": [ < -1, < -1 < ] --- > "first": {"key": "aimVector"}, > "second": {"value": [-1, -1]} 124,133c103,111 < "aimVector": "aimVector", < "angle": 0, < "offset": "", < "position": "self", < "power": 5, < "projectileConfig": {}, < "projectileType": "lightpellet", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"key": "aimVector"}, > "angle": {"value": 0}, > "offset": {"key": ""}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "lightpellet"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 141,145c119,120 < "first": "aimVector", < "second": [ < -1, < 1 < ] --- > "first": {"key": "aimVector"}, > "second": {"value": [-1, 1]} 156,165c131,139 < "aimVector": "aimVector", < "angle": 0, < "offset": "", < "position": "self", < "power": 5, < "projectileConfig": {}, < "projectileType": "lightpellet", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"key": "aimVector"}, > "angle": {"value": 0}, > "offset": {"key": ""}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "lightpellet"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 173,177c147,148 < "first": "aimVector", < "second": [ < -1, < -1 < ] --- > "first": {"key": "aimVector"}, > "second": {"value": [-1, -1]} 188,197c159,167 < "aimVector": "aimVector", < "angle": 0, < "offset": "", < "position": "self", < "power": 5, < "projectileConfig": {}, < "projectileType": "lightpellet", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"key": "aimVector"}, > "angle": {"value": 0}, > "offset": {"key": ""}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "lightpellet"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} behaviors\monsters\boss\apeboss\fistattack.behavior 5d4 < "/scripts/actions/monster.lua", 7,8d5 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 22,27c19 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 34,35c26,27 < "state": "fist", < "type": "attackSound" --- > "state": {"value": "fist"}, > "type": {"value": "attackSound"} 43c35 < "state": "fist" --- > "state": {"value": "fist"} 51,52c43,44 < "position": "spawn", < "tolerance": 1 --- > "position": {"key": "spawn"}, > "tolerance": {"value": 1} 60,63c52 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 71,74c60 < "time": 0.5 < }, < "output": { < "ratio": "" --- > "time": {"value": 0.5} 82,83c68,69 < "state": "windup", < "type": "body" --- > "state": {"value": "windup"}, > "type": {"value": "body"} 91,95c77,81 < "projectorCount": "projectorCount", < "stage1": "stage1Attack", < "stage2": "stage2Attack", < "stage3": "stage3Attack", < "stage4": "stage4Attack" --- > "projectorCount": {"key": "projectorCount"}, > "stage1": {"value": "stage1Attack"}, > "stage2": {"value": "stage2Attack"}, > "stage3": {"value": "stage3Attack"}, > "stage4": {"value": "stage4Attack"} 103,106c89 < "time": 1 < }, < "output": { < "ratio": "" --- > "time": {"value": 1} 114,115c97,98 < "maxLoops": "", < "untilSuccess": false --- > "maxLoops": {"key": ""}, > "untilSuccess": {"value": false} 121,126c104 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 133,134c111,112 < "launchGroups": "", < "power": 10 --- > "launchGroups": {"key": ""}, > "power": {"value": 10} 142c120 < "time": "" --- > "time": {"value": ""} 153,154c131,132 < "state": "off", < "type": "attackSound" --- > "state": {"value": "off"}, > "type": {"value": "attackSound"} 162,163c140,141 < "state": "winddown", < "type": "body" --- > "state": {"value": "winddown"}, > "type": {"value": "body"} behaviors\monsters\boss\apeboss\idle.behavior 2a3 > "description": "", 6,9c7 < "/scripts/actions/monster.lua", < "/scripts/actions/animator.lua", < "/scripts/actions/entity.lua", < "/monsters/monster.lua" --- > "/scripts/actions/animator.lua" 16,21c14 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 28c21 < "time": 1.2 --- > "time": {"value": 1.2} 36c29 < "state": "idle" --- > "state": {"value": "idle"} 44,48c37,41 < "projectorCount": "projectorCount", < "stage1": "stage1Glitch", < "stage2": "stage2Glitch", < "stage3": "stage3Glitch", < "stage4": "stage4Glitch" --- > "projectorCount": {"key": "projectorCount"}, > "stage1": {"value": "stage1Glitch"}, > "stage2": {"value": "stage2Glitch"}, > "stage3": {"value": "stage3Glitch"}, > "stage4": {"value": "stage4Glitch"} 56,57c49,50 < "state": "glitch", < "type": "body" --- > "state": {"value": "glitch"}, > "type": {"value": "body"} 65c58 < "time": 1.4 --- > "time": {"value": 1.4} behaviors\monsters\boss\apeboss\missileattack.behavior 8,11c8 < "/scripts/actions/monster.lua", < "/scripts/actions/animator.lua", < "/scripts/actions/entity.lua", < "/monsters/monster.lua" --- > "/scripts/actions/animator.lua" 24,29c21 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 36c28 < "state": "rocket" --- > "state": {"value": "rocket"} 44,45c36,37 < "position": "spawn", < "tolerance": 1 --- > "position": {"key": "spawn"}, > "tolerance": {"value": 1} 53,56c45 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 64c53 < "time": 0.5 --- > "time": {"value": 0.5} 72,73c61,62 < "state": "windup", < "type": "body" --- > "state": {"value": "windup"}, > "type": {"value": "body"} 81,85c70,74 < "projectorCount": "projectorCount", < "stage1": "stage1Attack", < "stage2": "stage2Attack", < "stage3": "stage3Attack", < "stage4": "stage4Attack" --- > "projectorCount": {"key": "projectorCount"}, > "stage1": {"value": "stage1Attack"}, > "stage2": {"value": "stage2Attack"}, > "stage3": {"value": "stage3Attack"}, > "stage4": {"value": "stage4Attack"} 93,94c82,83 < "state": "missile", < "type": "attackSound" --- > "state": {"value": "missile"}, > "type": {"value": "attackSound"} 102c91 < "time": "" --- > "time": {"value": ""} 110,111c99,100 < "maxLoops": "", < "untilSuccess": false --- > "maxLoops": {"key": ""}, > "untilSuccess": {"value": false} 117,122c106 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 129,131c113,115 < "power": 10, < "projectorList": "", < "target": "" --- > "power": {"value": 10}, > "projectorList": {"key": ""}, > "target": {"key": ""} 139c123 < "time": "" --- > "time": {"value": ""} 150,151c134,135 < "state": "off", < "type": "attackSound" --- > "state": {"value": "off"}, > "type": {"value": "attackSound"} 159,160c143,144 < "state": "winddown", < "type": "body" --- > "state": {"value": "winddown"}, > "type": {"value": "body"} behaviors\monsters\boss\apeboss\needleattack.behavior 2a3 > "description": "", 8,11c9 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/movement.lua", < "/scripts/actions/monster.lua", --- > "/scripts/actions/movement.lua", 13,14d10 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 21,24c17 < "needleTargetOffset": [ < 0, < 15 < ], --- > "needleTargetOffset": [0, 15], 26,27c19 < "needleMaxAngle": 0.5, < "needlePower": 5 --- > "needleMaxAngle": 0.5 33,38c25 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 45c32 < "state": "needle" --- > "state": {"value": "needle"} 58,63c45 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 70,71c52,53 < "from": "spawn", < "to": "self" --- > "from": {"key": "spawn"}, > "to": {"key": "self"} 82,83c64,65 < "first": "spawnX", < "second": "" --- > "first": {"key": "spawnX"}, > "second": {"key": ""} 96,97c78,79 < "first": "spawnX", < "second": "" --- > "first": {"key": "spawnX"}, > "second": {"key": ""} 108,109c90,91 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 116,121c98 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 128c105 < "entity": "target" --- > "entity": {"key": "target"} 139,142c116,119 < "avoidLiquid": true, < "maxHeight": 5, < "minHeight": -20, < "position": "targetPosition" --- > "avoidLiquid": {"value": true}, > "maxHeight": {"value": 5}, > "minHeight": {"value": -20}, > "position": {"key": "targetPosition"} 153,154c130,131 < "offset": "", < "position": "targetGround" --- > "offset": {"key": ""}, > "position": {"key": "targetGround"} 167,168c144,145 < "position": "needleAttack", < "tolerance": 1 --- > "position": {"key": "needleAttack"}, > "tolerance": {"value": 1} 180,183c157 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 191,192c165,166 < "state": "firewindup", < "type": "body" --- > "state": {"value": "firewindup"}, > "type": {"value": "body"} 200,204c174,178 < "projectorCount": "projectorCount", < "stage1": "stage1Attack", < "stage2": "stage2Attack", < "stage3": "stage3Attack", < "stage4": "stage4Attack" --- > "projectorCount": {"key": "projectorCount"}, > "stage1": {"value": "stage1Attack"}, > "stage2": {"value": "stage2Attack"}, > "stage3": {"value": "stage3Attack"}, > "stage4": {"value": "stage4Attack"} 212c186 < "time": 1 --- > "time": {"value": 1} 220,221c194,195 < "maxLoops": 30, < "untilSuccess": false --- > "maxLoops": {"value": 30}, > "untilSuccess": {"value": false} 227,232c201 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 239,240c208,209 < "max": "", < "min": "" --- > "max": {"key": ""}, > "min": {"key": ""} 251,255c220,221 < "vector": [ < 0, < -1 < ], < "angle": "randAngle" --- > "angle": {"key": "randAngle"}, > "vector": {"value": [0, -1]} 266,278c232,240 < "aimVector": "aimVector", < "angle": 0, < "offset": [ < 2.5, < 0 < ], < "position": "self", < "power": "", < "projectileConfig": {}, < "projectileType": "lightdagger", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"key": "aimVector"}, > "angle": {"value": 0}, > "offset": {"value": [2.5, 0]}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "lightdagger"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 286,287c248,249 < "max": "", < "min": "" --- > "max": {"key": ""}, > "min": {"key": ""} 298,302c260,261 < "vector": [ < 0, < -1 < ], < "angle": "randAngle" --- > "angle": {"key": "randAngle"}, > "vector": {"value": [0, -1]} 313,325c272,280 < "aimVector": "aimVector", < "angle": 0, < "offset": [ < -2.5, < 0 < ], < "position": "self", < "power": "", < "projectileConfig": {}, < "projectileType": "lightdagger", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"key": "aimVector"}, > "angle": {"value": 0}, > "offset": {"value": [-2.5, 0]}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "lightdagger"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 333c288 < "time": 0.1 --- > "time": {"value": 0.1} 341c296 < "sound": "fireNeedle" --- > "sound": {"value": "fireNeedle"} 352,353c307,308 < "state": "firewinddown", < "type": "body" --- > "state": {"value": "firewinddown"}, > "type": {"value": "body"} behaviors\monsters\boss\apeboss\pelletattack.behavior 2a3 > "description": "", 7,10c8 < "/scripts/actions/monster.lua", < "/scripts/actions/animator.lua", < "/scripts/actions/entity.lua", < "/monsters/monster.lua" --- > "/scripts/actions/animator.lua" 13,20c11,12 < "leftEyeOffset": [ < -2.5, < 1 < ], < "rightEyeOffset": [ < 2.5, < 1 < ], --- > "leftEyeOffset": [-2.5, 1], > "rightEyeOffset": [2.5, 1], 27,32c19 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 39c26 < "state": "pellet" --- > "state": {"value": "pellet"} 47,48c34,35 < "position": "spawn", < "tolerance": 1 --- > "position": {"key": "spawn"}, > "tolerance": {"value": 1} 56,59c43 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 67c51 < "time": 0.5 --- > "time": {"value": 0.5} 75,76c59,60 < "state": "firewindup", < "type": "body" --- > "state": {"value": "firewindup"}, > "type": {"value": "body"} 84,88c68,72 < "projectorCount": "projectorCount", < "stage1": "stage1Attack", < "stage2": "stage2Attack", < "stage3": "stage3Attack", < "stage4": "stage4Attack" --- > "projectorCount": {"key": "projectorCount"}, > "stage1": {"value": "stage1Attack"}, > "stage2": {"value": "stage2Attack"}, > "stage3": {"value": "stage3Attack"}, > "stage4": {"value": "stage4Attack"} 96c80 < "time": 1 --- > "time": {"value": 1} 104,105c88,89 < "maxLoops": "", < "untilSuccess": false --- > "maxLoops": {"key": ""}, > "untilSuccess": {"value": false} 112,113c96,97 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 121c105 < "time": 3 --- > "time": {"value": 3} 138,140c122,124 < "leftEyeOffset": "", < "rightEyeOffset": "", < "progress": "progress" --- > "leftEyeOffset": {"value": ""}, > "rightEyeOffset": {"value": ""}, > "progress": {"key": "progress"} 148,150c132,134 < "leftEyeOffset": "", < "rightEyeOffset": "", < "progress": "progress" --- > "leftEyeOffset": {"value": ""}, > "rightEyeOffset": {"value": ""}, > "progress": {"key": "progress"} 163,164c147,148 < "state": "firewinddown", < "type": "body" --- > "state": {"value": "firewinddown"}, > "type": {"value": "body"} behaviors\monsters\boss\apeboss\stagesound.behavior 2a3 > "description": "", 5,8c6 < "/scripts/actions/monster.lua", < "/scripts/actions/animator.lua", < "/scripts/actions/entity.lua", < "/monsters/monster.lua" --- > "/scripts/actions/animator.lua" 27,32c25 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 39,40c32,33 < "first": "", < "second": 3 --- > "first": {"key": ""}, > "second": {"value": 3} 48c41 < "sound": "" --- > "sound": {"value": ""} 57,62c50 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 69,70c57,58 < "first": "", < "second": 2 --- > "first": {"key": ""}, > "second": {"value": 2} 78c66 < "sound": "" --- > "sound": {"value": ""} 87,92c75 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 99,100c82,83 < "first": "", < "second": 1 --- > "first": {"key": ""}, > "second": {"value": 1} 108c91 < "sound": "" --- > "sound": {"value": ""} 118c101 < "sound": "" --- > "sound": {"value": ""} behaviors\monsters\boss\apeboss\sweepattack.behavior 24,29c24 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 36c31 < "state": "sweep" --- > "state": {"value": "sweep"} 52,57c47 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 63,68c53 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 75,76c60,61 < "number": "", < "factor": "sweepDirection" --- > "factor": {"key": "sweepDirection"}, > "number": {"key": ""} 87,91c72,73 < "offset": [ < "sweepX", < 0 < ], < "position": "spawn" --- > "offset": {"value": ["sweepX", 0]}, > "position": {"key": "spawn"} 102,105c84,87 < "avoidLiquid": true, < "maxHeight": 5, < "minHeight": -20, < "position": "sweepPosition" --- > "avoidLiquid": {"value": true}, > "maxHeight": {"value": 5}, > "minHeight": {"value": -20}, > "position": {"key": "sweepPosition"} 116,118c98,100 < "position": "sweepPosition", < "x": 0, < "y": "" --- > "position": {"key": "sweepPosition"}, > "x": {"value": 0}, > "y": {"key": ""} 131,132c113,114 < "position": "sweepPosition", < "tolerance": 1 --- > "position": {"key": "sweepPosition"}, > "tolerance": {"value": 1} 140,143c122 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 151,152c130,131 < "state": "windup", < "type": "body" --- > "state": {"value": "windup"}, > "type": {"value": "body"} 160,164c139,143 < "projectorCount": "projectorCount", < "stage1": "stage1Attack", < "stage2": "stage2Attack", < "stage3": "stage3Attack", < "stage4": "stage4Attack" --- > "projectorCount": {"key": "projectorCount"}, > "stage1": {"value": "stage1Attack"}, > "stage2": {"value": "stage2Attack"}, > "stage3": {"value": "stage3Attack"}, > "stage4": {"value": "stage4Attack"} 172c151 < "time": 0.3 --- > "time": {"value": 0.3} 182,183c161,162 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 191,193c170,172 < "type": "attackSound", < "state": "sweep", < "fallback": "off" --- > "fallback": {"value": "off"}, > "state": {"value": "sweep"}, > "type": {"value": "attackSound"} 201,202c180,181 < "maxLoops": "", < "untilSuccess": false --- > "maxLoops": {"key": ""}, > "untilSuccess": {"value": false} 208,213c187 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 220,221c194,195 < "number": "sweepDirection", < "factor": -1 --- > "factor": {"value": -1}, > "number": {"key": "sweepDirection"} 231,236c205 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 243,244c212,213 < "number": "", < "factor": "sweepDirection" --- > "factor": {"key": "sweepDirection"}, > "number": {"key": ""} 255,256c224,225 < "projectorList": "", < "speed": "sweepProjectorSpeed" --- > "projectorList": {"key": ""}, > "speed": {"key": "sweepProjectorSpeed"} 266,269c235 < "time": 0.5 < }, < "output": { < "ratio": "" --- > "time": {"value": 0.5} 276,281c242 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 288,289c249,250 < "number": "", < "factor": "sweepDirection" --- > "factor": {"key": "sweepDirection"}, > "number": {"key": ""} 300,304c261,262 < "offset": [ < "sweepX", < 0 < ], < "position": "spawn" --- > "offset": {"value": ["sweepX", 0]}, > "position": {"key": "spawn"} 315,318c273,276 < "avoidLiquid": true, < "maxHeight": 5, < "minHeight": -20, < "position": "sweepPosition" --- > "avoidLiquid": {"value": true}, > "maxHeight": {"value": 5}, > "minHeight": {"value": -20}, > "position": {"key": "sweepPosition"} 329,331c287,289 < "position": "sweepPosition", < "x": 0, < "y": "" --- > "position": {"key": "sweepPosition"}, > "x": {"value": 0}, > "y": {"key": ""} 343,348c301 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 355,357c308,310 < "position": "sweepPosition", < "tolerance": 1, < "speed": "" --- > "position": {"key": "sweepPosition"}, > "speed": {"key": ""}, > "tolerance": {"value": 1} 365,368c318 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 376c326 < "time": 0.5 --- > "time": {"value": 0.5} 391,392c341,342 < "projectorList": "", < "speed": "projectorSpeed" --- > "projectorList": {"key": ""}, > "speed": {"key": "projectorSpeed"} 400,401c350,351 < "state": "winddown", < "type": "body" --- > "state": {"value": "winddown"}, > "type": {"value": "body"} behaviors\monsters\boss\apeboss\transition.behavior 2a3 > "description": "", 5,8c6 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/boss/apeboss.lua", < "/scripts/actions/monster.lua", --- > "/scripts/actions/boss/apeboss.lua", 10,11d7 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 18d13 < "glitch": true, 25,30c20 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 42,43c32,33 < "list": "", < "type": "entity" --- > "list": {"key": ""}, > "type": {"value": "entity"} 55,56c45,46 < "entity": "eachItem", < "message": "heal" --- > "entity": {"key": "eachItem"}, > "message": {"value": "heal"} 67c57 < "projectorList": "" --- > "projectorList": {"key": ""} 75,76c65,66 < "type": "stage", < "tag": "" --- > "tag": {"value": ""}, > "type": {"value": "stage"} 84,85c74,75 < "state": "", < "type": "idleSound" --- > "state": {"value": ""}, > "type": {"value": "idleSound"} 93,94c83,84 < "state": "off", < "type": "attackSound" --- > "state": {"value": "off"}, > "type": {"value": "attackSound"} 102c92 < "number": "" --- > "number": {"key": ""} 113,114c103,104 < "projectorList": "", < "speed": "" --- > "projectorList": {"key": ""}, > "speed": {"key": ""} 122,123c112,113 < "state": "glitch", < "type": "body" --- > "state": {"value": "glitch"}, > "type": {"value": "body"} 131,135c121,125 < "projectorCount": 4, < "stage1": "", < "stage2": "stage2Transition", < "stage3": "stage3Transition", < "stage4": "stage4Transition" --- > "projectorCount": {"value": 4}, > "stage1": {"value": ""}, > "stage2": {"value": "stage2Transition"}, > "stage3": {"value": "stage3Transition"}, > "stage4": {"value": "stage4Transition"} 143c133 < "time": 0.45 --- > "time": {"value": 0.45} 148c138 < } \ No newline at end of file --- > } behaviors\monsters\boss\cultistboss\beamattack.behavior 2a3 > "description": "", 5,8c6 < "/scripts/actions/monster.lua", < "/scripts/actions/animator.lua", < "/scripts/actions/entity.lua", < "/monsters/monster.lua" --- > "/scripts/actions/animator.lua" 24,27c22,25 < "positionType": "", < "shufflePositions": true, < "reverseOrder": false, < "positionIndex": 1 --- > "positionType": {"value": ""}, > "shufflePositions": {"value": true}, > "reverseOrder": {"value": false}, > "positionIndex": {"value": 1} 41,44c39 < "time": 1 < }, < "output": { < "ratio": "" --- > "time": {"value": 1} 52,53c47,48 < "state": "beamwindup", < "type": "body" --- > "state": {"value": "beamwindup"}, > "type": {"value": "body"} 61c56 < "time": 4 --- > "time": {"value": 4} 69,70c64,65 < "state": "beamwinddown", < "type": "body" --- > "state": {"value": "beamwinddown"}, > "type": {"value": "body"} 78c73 < "time": 0.5 --- > "time": {"value": 0.5} behaviors\monsters\boss\cultistboss\cultistboss.behavior 28c28 < "direction": -1 --- > "direction": {"value": -1} 36c36 < "shouldDie": false --- > "shouldDie": {"value": false} 44,45c44,45 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 53,61c53,59 < "targetQueryRange": 60, < "keepTargetInRange": 60, < "targetEntityTypes": [ < "player" < ], < "keepTargetInSight": false, < "queryTargets": true, < "targetOnDamage": true, < "targetOutOfSightTime": 1 --- > "targetQueryRange": {"value": 60}, > "keepTargetInRange": {"value": 60}, > "targetEntityTypes": {"value": ["player"]}, > "keepTargetInSight": {"value": false}, > "queryTargets": {"value": true}, > "targetOnDamage": {"value": true}, > "targetOutOfSightTime": {"value": 1} 75,76c73,74 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 84c82 < "entity": "target" --- > "entity": {"key": "target"} 92,93c90,91 < "percentage": 0, < "resource": "health" --- > "percentage": {"value": 0}, > "resource": {"value": "health"} 107c105 < "name": "exhausted" --- > "name": {"key": "exhausted"} 115,116c113,114 < "name": "cultistshield", < "duration": 10 --- > "duration": {"value": 10}, > "name": {"value": "cultistshield"} 132c130 < "name": "intro" --- > "name": {"value": "intro"} 140,143c138,141 < "dialogWaitTime": 4, < "dialogEndWait": 4, < "dialogKey": "dialog.intro", < "dialogTarget": "target" --- > "dialogWaitTime": {"value": 4}, > "dialogEndWait": {"value": 4}, > "dialogKey": {"value": "dialog.intro"}, > "dialogTarget": {"key": "target"} 151c149 < "type": "Special" --- > "type": {"value": "Special"} 159c157 < "enable": true --- > "enable": {"value": true} 167,170c165,168 < "dialogWaitTime": 0, < "dialogEndWait": 0, < "dialogKey": "dialog.start", < "dialogTarget": "target" --- > "dialogWaitTime": {"value": 0}, > "dialogEndWait": {"value": 0}, > "dialogKey": {"value": "dialog.start"}, > "dialogTarget": {"key": "target"} 178c176 < "aggressive": true --- > "aggressive": {"value": true} 186,187c184,185 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 206,207c204,205 < "projectileAngleStep": 0.14, < "projectileCount": 8 --- > "projectileAngleStep": {"value": 0.14}, > "projectileCount": {"value": 8} 215c213 < "name": "intro" --- > "name": {"value": "intro"} 229,231c227,229 < "dashSpeed": 75, < "dashTime": 0.43, < "teleportPosition": "cultistupperdashposition" --- > "dashSpeed": {"value": 75}, > "dashTime": {"value": 0.43}, > "teleportPosition": {"value": "cultistupperdashposition"} 239,241c237,239 < "dashSpeed": 75, < "dashTime": 0.8, < "teleportPosition": "cultistlowerdashposition" --- > "dashSpeed": {"value": 75}, > "dashTime": {"value": 0.8}, > "teleportPosition": {"value": "cultistlowerdashposition"} 251c249 < "idleTime": 2 --- > "idleTime": {"value": 2} 271c269 < "teleportPosition": "cultistbeamposition" --- > "teleportPosition": {"value": "cultistbeamposition"} 279c277 < "idleTime": 2 --- > "idleTime": {"value": 2} 305,306c303,304 < "percentage": 0, < "resource": "health" --- > "percentage": {"value": 0}, > "resource": {"value": "health"} 315,316c313,314 < "state": "idle", < "type": "body" --- > "state": {"value": "idle"}, > "type": {"value": "body"} 324c322 < "enable": false --- > "enable": {"value": false} 332,335c330,333 < "dialogWaitTime": 4, < "dialogEndWait": "", < "dialogKey": "dialog.death", < "dialogTarget": "target" --- > "dialogWaitTime": {"value": 4}, > "dialogEndWait": {"key": ""}, > "dialogKey": {"value": "dialog.death"}, > "dialogTarget": {"key": "target"} 343c341 < "name": "beamout" --- > "name": {"value": "beamout"} 351,354c349 < "time": 0.75 < }, < "output": { < "ratio": "" --- > "time": {"value": 0.75} 362c357 < "shouldDie": true --- > "shouldDie": {"value": true} 378,379c373,374 < "percentage": 1, < "resource": "health" --- > "percentage": {"value": 1}, > "resource": {"value": "health"} 387c382 < "type": "None" --- > "type": {"value": "None"} 395c390 < "aggressive": false --- > "aggressive": {"value": false} 402,407c397 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 414,415c404,405 < "state": "beamout", < "type": "body" --- > "state": {"value": "beamout"}, > "type": {"value": "body"} 423,426c413 < "time": 0.9 < }, < "output": { < "ratio": "" --- > "time": {"value": 0.9} 434,435c421,422 < "footPosition": false, < "position": "spawn" --- > "footPosition": {"value": false}, > "position": {"key": "spawn"} 443c430 < "direction": -1 --- > "direction": {"value": -1} 451,454c438 < "time": 0.1 < }, < "output": { < "ratio": "" --- > "time": {"value": 0.1} 462,463c446,447 < "state": "beamin", < "type": "body" --- > "state": {"value": "beamin"}, > "type": {"value": "body"} 471c455 < "enable": false --- > "enable": {"value": false} 479c463 < "time": 0.6 --- > "time": {"value": 0.6} 487,488c471,472 < "state": "intro", < "type": "body" --- > "state": {"value": "intro"}, > "type": {"value": "body"} behaviors\monsters\boss\cultistboss\dashattack.behavior 2a3 > "description": "", 8d8 < "/scripts/actions/monster.lua", 10,11d9 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 12a11 > "/scripts/actions/monster.lua", 33,36c32,35 < "positionType": "", < "shufflePositions": true, < "reverseOrder": false, < "positionIndex": 1 --- > "positionType": {"value": ""}, > "shufflePositions": {"value": true}, > "reverseOrder": {"value": false}, > "positionIndex": {"value": 1} 44,45c43,44 < "from": "self", < "to": "spawn" --- > "from": {"key": "self"}, > "to": {"key": "spawn"} 56c55 < "vector": "toSpawn" --- > "vector": {"key": "toSpawn"} 67c66 < "direction": "spawnX" --- > "direction": {"key": "spawnX"} 78c77 < "direction": "dashDirection" --- > "direction": {"key": "dashDirection"} 86c85 < "time": "" --- > "time": {"value": ""} 94,95c93,94 < "state": "dashwindup", < "type": "body" --- > "state": {"value": "dashwindup"}, > "type": {"value": "body"} 103c102 < "time": 0.4 --- > "time": {"value": 0.4} 111,112c110,111 < "number": "dashDirection", < "factor": "" --- > "factor": {"key": ""}, > "number": {"key": "dashDirection"} 123,124c122,123 < "active": true, < "emitter": "dash" --- > "active": {"value": true}, > "emitter": {"value": "dash"} 132,133c131,132 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 141,145c140,141 < "velocity": [ < "dashVelocity", < 0 < ], < "force": "" --- > "force": {"key": ""}, > "velocity": {"value": ["dashVelocity", 0]} 153c149 < "name": "dash" --- > "name": {"value": "dash"} 167c163 < "direction": "facingDirection" --- > "direction": {"key": "facingDirection"} 175c171 < "time": "" --- > "time": {"value": ""} 187,188c183,184 < "number": "facingDirection", < "factor": -1 --- > "factor": {"value": -1}, > "number": {"key": "facingDirection"} 199c195 < "direction": "newFacing" --- > "direction": {"key": "newFacing"} 207,208c203,204 < "active": false, < "emitter": "dash" --- > "active": {"value": false}, > "emitter": {"value": "dash"} 216,217c212,213 < "state": "idle", < "type": "body" --- > "state": {"value": "idle"}, > "type": {"value": "body"} 225,229c221,222 < "velocity": [ < 0, < 0 < ], < "force": "" --- > "force": {"key": ""}, > "velocity": {"value": [0, 0]} 237,240c230 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} behaviors\monsters\boss\cultistboss\exhaust.behavior 22,23c22,23 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 31c31,34 < "name": "exhausted" --- > "bool": {"value": true} > }, > "output" : { > "bool" : "exhausted" 45,46c48,49 < "state": "exhaustin", < "type": "body" --- > "state": {"value": "exhaustin"}, > "type": {"value": "body"} 54c57 < "emitter": "outOfEnergy" --- > "emitter": {"value": "outOfEnergy"} 62c65 < "name": "cultistshield" --- > "name": {"value": "cultistshield"} 70c73 < "sound": "outOfEnergy" --- > "sound": {"value": "outOfEnergy"} 78c81 < "time": 5 --- > "time": {"value": 5} 86,87c89,90 < "state": "exhaustout", < "type": "body" --- > "state": {"value": "exhaustout"}, > "type": {"value": "body"} 95c98 < "sound": "energyRecharge" --- > "sound": {"value": "energyRecharge"} 103c106 < "time": 0.3 --- > "time": {"value": 0.3} 115c118 < "time": 0.2 --- > "time": {"value": 0.2} 120c123 < } \ No newline at end of file --- > } behaviors\monsters\boss\cultistboss\facecenter.behavior 2a3 > "description": "", 8,11c9 < "parameters": { < "dashSpeed": 50, < "dashTime": 0.6 < }, --- > "parameters": {}, 23,24c21,22 < "from": "self", < "to": "spawn" --- > "from": {"key": "self"}, > "to": {"key": "spawn"} 35c33 < "vector": "toSpawn" --- > "vector": {"key": "toSpawn"} 46c44 < "direction": "spawnX" --- > "direction": {"key": "spawnX"} behaviors\monsters\boss\cultistboss\flyingslashattack.behavior 2a3 > "description": "", 6d6 < "/scripts/actions/monster.lua", 8,9d7 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 35,38c33,36 < "positionType": "cultistflyingslashposition", < "shufflePositions": true, < "reverseOrder": false, < "positionIndex": 1 --- > "positionType": {"value": "cultistflyingslashposition"}, > "shufflePositions": {"value": true}, > "reverseOrder": {"value": false}, > "positionIndex": {"value": 1} 52c50 < "time": "" --- > "time": {"value": ""} 60,61c58,59 < "x": 0, < "y": "" --- > "x": {"value": 0}, > "y": {"key": ""} 69,70c67,68 < "state": "jump", < "type": "body" --- > "state": {"value": "jump"}, > "type": {"value": "body"} 78,79c76,77 < "from": "self", < "to": "spawn" --- > "from": {"key": "self"}, > "to": {"key": "spawn"} 90c88 < "direction": "toSpawn" --- > "direction": {"key": "toSpawn"} 101,102c99,100 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 110,114c108,109 < "velocity": [ < 0, < 0 < ], < "force": "" --- > "force": {"key": ""}, > "velocity": {"value": [0, 0]} 122,124c117 < "parameters": { < "gravityEnabled": false < } --- > "parameters": {"value": {"gravityEnabled": false}} 131,136c124 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 143c131 < "time": "" --- > "time": {"value": ""} 151,152c139,140 < "state": "flyingslash", < "type": "body" --- > "state": {"value": "flyingslash"}, > "type": {"value": "body"} 160c148 < "sound": "flyingSlash" --- > "sound": {"value": "flyingSlash"} 168c156 < "time": 0.1 --- > "time": {"value": 0.1} 175,180c163 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 187,188c170,171 < "number": "toSpawn", < "factor": -1 --- > "factor": {"value": -1}, > "number": {"key": "toSpawn"} 199,200c182,183 < "number": "rotationDirection", < "factor": "" --- > "factor": {"key": ""}, > "number": {"key": "rotationDirection"} 211,212c194,195 < "number": "", < "factor": "toSpawn" --- > "factor": {"key": "toSpawn"}, > "number": {"key": ""} 223,227c206,207 < "vector": [ < "toSpawn", < 0 < ], < "angle": "startAngle" --- > "angle": {"key": "startAngle"}, > "vector": {"value": ["toSpawn", 0]} 238,239c218,219 < "maxLoops": "", < "untilSuccess": false --- > "maxLoops": {"key": ""}, > "untilSuccess": {"value": false} 245,250c225 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 257c232 < "time": "" --- > "time": {"value": ""} 265,266c240,241 < "vector": "aimVector", < "angle": "rotationAngle" --- > "angle": {"key": "rotationAngle"}, > "vector": {"key": "aimVector"} 277,278c252,253 < "first": "aimVector", < "second": 2 --- > "first": {"key": "aimVector"}, > "second": {"value": [2, 2]} 289,290c264,265 < "offset": "spawnOffset", < "position": "self" --- > "offset": {"key": "spawnOffset"}, > "position": {"key": "self"} 301,313c276,284 < "aimVector": "aimVector", < "angle": 0, < "offset": [ < 0, < 0 < ], < "position": "spawnPosition", < "power": 10, < "projectileConfig": {}, < "projectileType": "energyshard", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"key": "aimVector"}, > "angle": {"value": 0}, > "offset": {"value": [0, 0]}, > "position": {"key": "spawnPosition"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "energyshard"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 321c292 < "sound": "fire" --- > "sound": {"value": "fire"} 334c305 < "time": 0.2 --- > "time": {"value": 0.2} 346,347c317,318 < "state": "fall", < "type": "body" --- > "state": {"value": "fall"}, > "type": {"value": "body"} 375,376c346,347 < "state": "idle", < "type": "body" --- > "state": {"value": "idle"}, > "type": {"value": "body"} 381c352 < } \ No newline at end of file --- > } behaviors\monsters\boss\cultistboss\slashattack.behavior 32,37c32 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 44,46c39,41 < "entity": "target", < "xRange": 5, < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "xRange": {"value": 5} 54,56c49,51 < "entity": "target", < "yRange": 3, < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "yRange": {"value": 3} 64,65c59,60 < "state": "slash", < "type": "body" --- > "state": {"value": "slash"}, > "type": {"value": "body"} 73c68 < "sound": "slash" --- > "sound": {"value": "slash"} 81c76 < "time": 0.7 --- > "time": {"value": 0.7} 89,92c84,87 < "orderBy": "nearest", < "position": "self", < "range": 75, < "type": "cultistidleslashposition" --- > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 75}, > "type": {"value": "cultistidleslashposition"} 103,104c98,99 < "list": "teleportPositions", < "type": "entity" --- > "list": {"key": "teleportPositions"}, > "type": {"value": "entity"} 111c106 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 120c115,118 < "list": "teleportPositions" --- > "list": {"key": "teleportPositions"} > }, > "output" : { > "list" : "teleportPositions" 128c126 < "list": "teleportPositions" --- > "list": {"key": "teleportPositions"} 139c137 < "list": "teleportPositions" --- > "list": {"key": "teleportPositions"} 150c148 < "entity": "teleportStagehand" --- > "entity": {"key": "teleportStagehand"} 161,162c159,160 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 170,174c168,169 < "velocity": [ < 0, < 0 < ], < "force": 500 --- > "force": {"value": 500}, > "velocity": {"value": [0, 0]} 181,186c176 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 193,194c183,184 < "footPosition": false, < "position": "teleportPosition" --- > "footPosition": {"value": false}, > "position": {"key": "teleportPosition"} 202,203c192,193 < "state": "beamin", < "type": "body" --- > "state": {"value": "beamin"}, > "type": {"value": "body"} 221,224c211 < "time": 1 < }, < "output": { < "ratio": "" --- > "time": {"value": 1} 234,239c221 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 246,247c228,229 < "state": "idle", < "type": "body" --- > "state": {"value": "idle"}, > "type": {"value": "body"} 255c237 < "time": "" --- > "time": {"value": ""} 262c244 < } \ No newline at end of file --- > } behaviors\monsters\boss\cultistboss\sphereattack.behavior 2a3 > "description": "", 33,36c34,37 < "positionType": "", < "shufflePositions": true, < "reverseOrder": false, < "positionIndex": 1 --- > "positionType": {"value": ""}, > "shufflePositions": {"value": true}, > "reverseOrder": {"value": false}, > "positionIndex": {"value": 1} 50c51 < "time": "" --- > "time": {"value": ""} 58,59c59,60 < "state": "spherein", < "type": "body" --- > "state": {"value": "spherein"}, > "type": {"value": "body"} 67c68 < "time": 0.7 --- > "time": {"value": 0.7} 75,78c76 < "velocity": [ < 0, < 80 < ] --- > "velocity": {"value": [0, 80]} 86c84 < "time": "" --- > "time": {"value": ""} 94,95c92,93 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 103,108c101 < "parameters": { < "gravityEnabled": false, < "airFriction": 0, < "bounceFactor": 1, < "stopOnFirstBounce": true < } --- > "parameters": {"value": {"gravityEnabled": false, "airFriction": 0, "bounceFactor": 1, "stopOnFirstBounce": true}} 122c115 < "name": "sphere" --- > "name": {"value": "sphere"} 129,134c122 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 141,142c129,130 < "active": true, < "emitter": "spheredash" --- > "active": {"value": true}, > "emitter": {"value": "spheredash"} 150,151c138,139 < "maxLoops": "", < "untilSuccess": false --- > "maxLoops": {"key": ""}, > "untilSuccess": {"value": false} 157,162c145 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 169,170c152,153 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 178,182c161,162 < "velocity": [ < 0, < 0 < ], < "force": "" --- > "force": {"key": ""}, > "velocity": {"value": [0, 0]} 190c170 < "time": 0.2 --- > "time": {"value": 0.2} 200c180 < "sound": "sphereDash" --- > "sound": {"value": "sphereDash"} 208,209c188,189 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 217,224c197,201 < "centripetalForce": "", < "controlForce": "", < "initialOffset": [ < 0, < 10 < ], < "speed": "", < "target": "target" --- > "centripetalForce": {"key": ""}, > "controlForce": {"key": ""}, > "initialOffset": {"value": [0, 10]}, > "speed": {"key": ""}, > "target": {"key": "target"} 232c209 < "time": "" --- > "time": {"value": ""} 242c219 < "time": "" --- > "time": {"value": ""} 253,254c230,231 < "active": false, < "emitter": "spheredash" --- > "active": {"value": false}, > "emitter": {"value": "spheredash"} 262,263c239,240 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 271,275c248,249 < "velocity": [ < 0, < 0 < ], < "force": "" --- > "force": {"key": ""}, > "velocity": {"value": [0, 0]} 283,286c257 < "time": 0.5 < }, < "output": { < "ratio": "" --- > "time": {"value": 0.5} 300,301c271,272 < "state": "sphereout", < "type": "body" --- > "state": {"value": "sphereout"}, > "type": {"value": "body"} 309c280 < "time": 0.5 --- > "time": {"value": 0.5} behaviors\monsters\boss\cultistboss\teleport.behavior 2a3 > "description": "", 4d4 < "/scripts/actions/world.lua", 6,7c6 < "/scripts/actions/entity.lua", < "/scripts/behavior/bdata.lua", --- > "/scripts/behavior/bdata.lua", 8a8 > "/scripts/actions/world.lua", 10d9 < "/scripts/actions/monster.lua", 12,13d10 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 26,31c23 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 38,41c30,33 < "orderBy": "nearest", < "position": "self", < "range": 75, < "type": "" --- > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 75}, > "type": {"value": ""} 57c49 < "shouldRun": "" --- > "shouldRun": {"key": ""} 64c56 < "list": "teleportPositions" --- > "list": {"key": "teleportPositions"} 82c74 < "shouldRun": "" --- > "shouldRun": {"key": ""} 89c81 < "list": "teleportPositions" --- > "list": {"key": "teleportPositions"} 107,108c99,100 < "maxLoops": "", < "untilSuccess": false --- > "maxLoops": {"key": ""}, > "untilSuccess": {"value": false} 115c107 < "list": "teleportPositions" --- > "list": {"key": "teleportPositions"} 117a110 > "list" : "teleportPositions", 128c121 < "entity": "teleportStagehand" --- > "entity": {"key": "teleportStagehand"} 139,140c132,133 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 148,152c141,142 < "velocity": [ < 0, < 0 < ], < "force": 500 --- > "force": {"value": 500}, > "velocity": {"value": [0, 0]} 159,164c149 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 177c162 < "shouldRun": "intro" --- > "shouldRun": {"key": "intro"} 184,185c169,170 < "state": "introbeam", < "type": "body" --- > "state": {"value": "introbeam"}, > "type": {"value": "body"} 194,195c179,180 < "state": "beamout", < "type": "body" --- > "state": {"value": "beamout"}, > "type": {"value": "body"} 205c190 < "time": 0.85 --- > "time": {"value": 0.85} 213,214c198,199 < "footPosition": false, < "position": "teleportPosition" --- > "footPosition": {"value": false}, > "position": {"key": "teleportPosition"} 222c207 < "time": 0.1 --- > "time": {"value": 0.1} 230,231c215,216 < "state": "beamin", < "type": "body" --- > "state": {"value": "beamin"}, > "type": {"value": "body"} 240c225 < } \ No newline at end of file --- > } behaviors\monsters\boss\cultistbossend\cultistbossend.behavior 25c25 < "direction": -1 --- > "direction": {"value": -1} 33c33 < "shouldDie": false --- > "shouldDie": {"value": false} 41,42c41,42 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 50,58c50,56 < "targetQueryRange": 25, < "keepTargetInRange": 200, < "targetEntityTypes": [ < "player" < ], < "keepTargetInSight": true, < "queryTargets": true, < "targetOnDamage": true, < "targetOutOfSightTime": 1 --- > "targetQueryRange": {"value": 25}, > "keepTargetInRange": {"value": 200}, > "targetEntityTypes": {"value": ["player"]}, > "keepTargetInSight": {"value": true}, > "queryTargets": {"value": true}, > "targetOnDamage": {"value": true}, > "targetOutOfSightTime": {"value": 1} 72c70 < "name": "exhausted" --- > "name": {"key": "exhausted"} 80,81c78,79 < "name": "cultistshield", < "duration": 10 --- > "duration": {"value": 10}, > "name": {"value": "cultistshield"} 97,98c95,96 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 106c104 < "entity": "target" --- > "entity": {"key": "target"} 114,115c112,113 < "percentage": 0, < "resource": "health" --- > "percentage": {"value": 0}, > "resource": {"value": "health"} 129c127 < "name": "intro" --- > "name": {"value": "intro"} 137,140c135,138 < "dialogWaitTime": 4, < "dialogEndWait": 0, < "dialogKey": "dialog.intro", < "dialogTarget": "target" --- > "dialogWaitTime": {"value": 4}, > "dialogEndWait": {"value": 0}, > "dialogKey": {"value": "dialog.intro"}, > "dialogTarget": {"key": "target"} 148c146 < "aggressive": true --- > "aggressive": {"value": true} 156,157c154,155 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 170,172c168,170 < "dashSpeed": 75, < "dashTime": 0.8, < "teleportPosition": "cultistlowerdashposition" --- > "dashSpeed": {"value": 75}, > "dashTime": {"value": 0.8}, > "teleportPosition": {"value": "cultistlowerdashposition"} 180c178 < "name": "intro" --- > "name": {"value": "intro"} 218,219c216,217 < "percentage": 0, < "resource": "health" --- > "percentage": {"value": 0}, > "resource": {"value": "health"} 228,229c226,227 < "state": "idle", < "type": "body" --- > "state": {"value": "idle"}, > "type": {"value": "body"} 237,240c235,238 < "dialogWaitTime": 4, < "dialogEndWait": 4, < "dialogKey": "dialog.death", < "dialogTarget": "target" --- > "dialogWaitTime": {"value": 4}, > "dialogEndWait": {"value": 4}, > "dialogKey": {"value": "dialog.death"}, > "dialogTarget": {"key": "target"} 248c246 < "name": "beamout" --- > "name": {"value": "beamout"} 256,259c254 < "time": 0.75 < }, < "output": { < "ratio": "" --- > "time": {"value": 0.75} 267c262 < "shouldDie": true --- > "shouldDie": {"value": true} 283,284c278,279 < "percentage": 1, < "resource": "health" --- > "percentage": {"value": 1}, > "resource": {"value": "health"} 292c287 < "aggressive": false --- > "aggressive": {"value": false} 299,304c294 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 311,312c301,302 < "state": "beamout", < "type": "body" --- > "state": {"value": "beamout"}, > "type": {"value": "body"} 320,323c310 < "time": 0.9 < }, < "output": { < "ratio": "" --- > "time": {"value": 0.9} 331,332c318,319 < "footPosition": false, < "position": "spawn" --- > "footPosition": {"value": false}, > "position": {"key": "spawn"} 340c327 < "direction": -1 --- > "direction": {"value": -1} 348,351c335 < "time": 0.1 < }, < "output": { < "ratio": "" --- > "time": {"value": 0.1} 359,360c343,344 < "state": "beamin", < "type": "body" --- > "state": {"value": "beamin"}, > "type": {"value": "body"} behaviors\monsters\boss\dragonboss\dragonaim.behavior 2a3 > "description": "", 7d7 < "/scripts/actions/monster.lua", 9,10d8 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 15,23c13,14 < "hoverHeight": 20, < "headRotationCenter": [ < 4.125, < 2.5 < ], < "projectileSpawnOffset": [ < 3.75, < -3.5 < ], --- > "headRotationCenter": [4.125, 2.5], > "projectileSpawnOffset": [3.75, -3.5], 43c34 < "vector": "fireOffset" --- > "vector": {"key": "fireOffset"} 54c45 < "vector": "minBounds" --- > "vector": {"key": "minBounds"} 65,66c56,57 < "first": "fireY", < "second": "minY" --- > "first": {"key": "fireY"}, > "second": {"key": "minY"} 76,77c67,68 < "offset": "fireOffset", < "position": "self" --- > "offset": {"key": "fireOffset"}, > "position": {"key": "self"} 88,89c79,80 < "from": "headPosition", < "to": "firePosition" --- > "from": {"key": "headPosition"}, > "to": {"key": "firePosition"} 106,110c97,98 < "first": "aimVector", < "second": [ < "facingDirection", < 1 < ] --- > "first": {"key": "aimVector"}, > "second": {"value": ["facingDirection", 1]} 121c109 < "vector": "facingVector" --- > "vector": {"key": "facingVector"} 132,133c120,121 < "addend": "", < "number": "targetAngle" --- > "addend": {"key": ""}, > "number": {"key": "targetAngle"} 152,153c140,141 < "vector": "", < "angle": "targetAngle" --- > "angle": {"key": "targetAngle"}, > "vector": {"key": ""} 164,165c152,153 < "first": "projectileOffset", < "second": "" --- > "first": {"key": "projectileOffset"}, > "second": {"key": ""} 176,180c164,165 < "first": "projectileOffset", < "second": [ < "facingDirection", < 1 < ] --- > "first": {"key": "projectileOffset"}, > "second": {"value": ["facingDirection", 1]} 199c184 < "transformationGroup": "head" --- > "transformationGroup": {"value": "head"} 207,209c192,194 < "angle": "targetAngle", < "transformationGroup": "head", < "rotationCenter": "" --- > "angle": {"key": "targetAngle"}, > "rotationCenter": {"key": ""}, > "transformationGroup": {"value": "head"} 219,227c204,211 < "aimVector": "facingVector", < "offset": "projectileOffset", < "position": "self", < "power": 2, < "projectileConfig": {}, < "projectileType": "dragonblockbuster", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"key": "facingVector"}, > "offset": {"key": "projectileOffset"}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "dragonblockbuster"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 235c219 < "time": 0.2 --- > "time": {"value": 0.2} 243,247c227,228 < "first": "fireOffset", < "second": [ < 0, < -2 < ] --- > "first": {"key": "fireOffset"}, > "second": {"value": [0, -2]} behaviors\monsters\boss\dragonboss\dragonboss.behavior 20,28c20,21 < "hoverHeight": 20, < "headRotationCenter": [ < 4.125, < 2.5 < ], < "projectileSpawnOffset": [ < 3.75, < -3.5 < ], --- > "headRotationCenter": [4.125, 2.5], > "projectileSpawnOffset": [3.75, -3.5], 42c35 < "shouldDie": false --- > "shouldDie": {"value": false} 50c43 < "direction": -1 --- > "direction": {"value": -1} 58c51 < "type": "Special" --- > "type": {"value": "Special"} 66c59 < "aggressive": true --- > "aggressive": {"value": true} 84,87c77 < "parameters": {}, < "output": { < "damageSource": "" < } --- > "parameters": {} 94c84 < "type": "bossAggro" --- > "type": {"value": "bossAggro"} 108c98 < "uniqueId": "bosshoverposition" --- > "uniqueId": {"value": "bosshoverposition"} 119c109 < "entity": "hoverStagehand" --- > "entity": {"key": "hoverStagehand"} 130,132c120,122 < "position": "hoverPosition", < "tolerance": 1, < "speed": 25 --- > "position": {"key": "hoverPosition"}, > "speed": {"value": 25}, > "tolerance": {"value": 1} 140,141c130,131 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 149,153c139,140 < "velocity": [ < 0, < 0 < ], < "force": 50 --- > "force": {"value": 50}, > "velocity": {"value": [0, 0]} 161c148 < "time": 1 --- > "time": {"value": 1} 182,183c169,170 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 191,195c178,179 < "velocity": [ < 0, < 0 < ], < "force": 20 --- > "force": {"value": 20}, > "velocity": {"value": [0, 0]} 203c187 < "time": 1 --- > "time": {"value": 1} 213,214c197,198 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 222,230c206,212 < "targetQueryRange": 80, < "keepTargetInRange": 100, < "targetEntityTypes": [ < "player" < ], < "keepTargetInSight": false, < "queryTargets": true, < "targetOnDamage": true, < "targetOutOfSightTime": 1 --- > "targetQueryRange": {"value": 80}, > "keepTargetInRange": {"value": 100}, > "targetEntityTypes": {"value": ["player"]}, > "keepTargetInSight": {"value": false}, > "queryTargets": {"value": true}, > "targetOnDamage": {"value": true}, > "targetOutOfSightTime": {"value": 1} 244,245c226,227 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 253c235 < "entity": "target" --- > "entity": {"key": "target"} 267c249 < "entity": "target" --- > "entity": {"key": "target"} 278c260 < "entity": "hoverStagehand" --- > "entity": {"key": "hoverStagehand"} 289,296c271,272 < "offset": [ < "targetX", < "hoverY" < ], < "position": [ < 0, < 0 < ] --- > "offset": {"value": ["targetX", "hoverY"]}, > "position": {"value": [0, 0]} 315,316c291,292 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 324,325c300,301 < "percentage": 0, < "resource": "health" --- > "percentage": {"value": 0}, > "resource": {"value": "health"} 339,340c315,316 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 348c324 < "direction": 1 --- > "direction": {"value": 1} 363,364c339,340 < "min": "minBounds", < "max": "maxBounds" --- > "max": "maxBounds", > "min": "minBounds" 372,373c348,349 < "offset": "", < "position": "self" --- > "offset": {"key": ""}, > "position": {"key": "self"} 384c360 < "vector": "maxBounds" --- > "vector": {"key": "maxBounds"} 395,396c371,372 < "maxLoops": -1, < "untilSuccess": true --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": true} 414,415c390,391 < "state": "attack", < "type": "attack" --- > "state": {"value": "attack"}, > "type": {"value": "attack"} 429c405 < "vector": "fireOffset" --- > "vector": {"key": "fireOffset"} 440c416 < "vector": "minBounds" --- > "vector": {"key": "minBounds"} 451,452c427,428 < "first": "fireY", < "second": "minY" --- > "first": {"key": "fireY"}, > "second": {"key": "minY"} 462,463c438,439 < "offset": "fireOffset", < "position": "self" --- > "offset": {"key": "fireOffset"}, > "position": {"key": "self"} 474,475c450,451 < "from": "headPosition", < "to": "firePosition" --- > "from": {"key": "headPosition"}, > "to": {"key": "firePosition"} 492,496c468,469 < "first": "aimVector", < "second": [ < "facingDirection", < 1 < ] --- > "first": {"key": "aimVector"}, > "second": {"value": ["facingDirection", 1]} 507c480 < "vector": "facingVector" --- > "vector": {"key": "facingVector"} 518,519c491,492 < "addend": "", < "number": "targetAngle" --- > "addend": {"key": ""}, > "number": {"key": "targetAngle"} 538,539c511,512 < "vector": "", < "angle": "targetAngle" --- > "angle": {"key": "targetAngle"}, > "vector": {"key": ""} 550,551c523,524 < "first": "projectileOffset", < "second": "" --- > "first": {"key": "projectileOffset"}, > "second": {"key": ""} 562,566c535,536 < "first": "projectileOffset", < "second": [ < "facingDirection", < 1 < ] --- > "first": {"key": "projectileOffset"}, > "second": {"value": ["facingDirection", 1]} 585c555 < "transformationGroup": "head" --- > "transformationGroup": {"value": "head"} 593,595c563,565 < "angle": "targetAngle", < "transformationGroup": "head", < "rotationCenter": "" --- > "angle": {"key": "targetAngle"}, > "rotationCenter": {"key": ""}, > "transformationGroup": {"value": "head"} 605,613c575,582 < "aimVector": "facingVector", < "offset": "projectileOffset", < "position": "self", < "power": 2, < "projectileConfig": {}, < "projectileType": "dragonblockbuster", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"key": "facingVector"}, > "offset": {"key": "projectileOffset"}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "dragonblockbuster"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 621c590 < "time": 0.2 --- > "time": {"value": 0.2} 629,633c598,599 < "first": "fireOffset", < "second": [ < 0, < -2 < ] --- > "first": {"key": "fireOffset"}, > "second": {"value": [0, -2]} 648,649c614,615 < "state": "winddown", < "type": "attack" --- > "state": {"value": "winddown"}, > "type": {"value": "attack"} 657c623 < "time": 0.5 --- > "time": {"value": 0.5} 680c646 < "entity": "target" --- > "entity": {"key": "target"} 689,690c655,656 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 698,702c664,665 < "velocity": [ < 0, < 0 < ], < "force": 20 --- > "force": {"value": 20}, > "velocity": {"value": [0, 0]} 710c673 < "time": 0.5 --- > "time": {"value": 0.5} 720,724c683,684 < "first": "", < "second": [ < "facingDirection", < 1 < ] --- > "first": {"key": ""}, > "second": {"value": ["facingDirection", 1]} 735,736c695,696 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 744,746c704,706 < "entity": "self", < "target": "target", < "offset": "headRotationCenter" --- > "entity": {"key": "self"}, > "offset": {"key": "headRotationCenter"}, > "target": {"key": "target"} 769,773c729,730 < "first": "aimVector", < "second": [ < "facingDirection", < 1 < ] --- > "first": {"key": "aimVector"}, > "second": {"value": ["facingDirection", 1]} 784c741 < "vector": "facingVector" --- > "vector": {"key": "facingVector"} 795,796c752,753 < "addend": "", < "number": "targetAngle" --- > "addend": {"key": ""}, > "number": {"key": "targetAngle"} 815,816c772,773 < "vector": "", < "angle": "targetAngle" --- > "angle": {"key": "targetAngle"}, > "vector": {"key": ""} 827,828c784,785 < "first": "projectileOffset", < "second": "" --- > "first": {"key": "projectileOffset"}, > "second": {"key": ""} 839,843c796,797 < "first": "projectileOffset", < "second": [ < "facingDirection", < 1 < ] --- > "first": {"key": "projectileOffset"}, > "second": {"value": ["facingDirection", 1]} 862c816 < "transformationGroup": "head" --- > "transformationGroup": {"value": "head"} 870,872c824,826 < "angle": "targetAngle", < "transformationGroup": "head", < "rotationCenter": "" --- > "angle": {"key": "targetAngle"}, > "rotationCenter": {"key": ""}, > "transformationGroup": {"value": "head"} 882,883c836,837 < "state": "attack", < "type": "attack" --- > "state": {"value": "attack"}, > "type": {"value": "attack"} 891c845 < "time": 0.35 --- > "time": {"value": 0.35} 899c853 < "sound": "blockBuster1" --- > "sound": {"value": "blockBuster1"} 907c861 < "time": 0.15 --- > "time": {"value": 0.15} 915,916c869,870 < "maxLoops": 3, < "untilSuccess": false --- > "maxLoops": {"value": 3}, > "untilSuccess": {"value": false} 929c883 < "sound": "blockBuster2" --- > "sound": {"value": "blockBuster2"} 937,945c891,898 < "aimVector": "aimVector", < "offset": "projectileOffset", < "position": "self", < "power": 2, < "projectileConfig": {}, < "projectileType": "dragonblockbuster", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"key": "aimVector"}, > "offset": {"key": "projectileOffset"}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "dragonblockbuster"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 953c906 < "time": 0.3 --- > "time": {"value": 0.3} 964,965c917,918 < "state": "winddown", < "type": "attack" --- > "state": {"value": "winddown"}, > "type": {"value": "attack"} 973c926 < "time": 0.6 --- > "time": {"value": 0.6} 987,988c940,941 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 996,998c949,951 < "cooldown": 2, < "onFail": false, < "onSuccess": true --- > "cooldown": {"value": 2}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 1005,1006c958,959 < "headRotationCenter": "", < "projectileSpawnOffset": "" --- > "headRotationCenter": {"key": ""}, > "projectileSpawnOffset": {"key": ""} 1026,1028c979,981 < "entity": "target", < "xRange": 20, < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "xRange": {"value": 20} 1037,1038c990,991 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 1046,1048c999,1001 < "entity": "target", < "xRange": 10, < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "xRange": {"value": 10} 1056,1058c1009,1011 < "position": "hoverPosition", < "tolerance": 1, < "speed": 10 --- > "position": {"key": "hoverPosition"}, > "speed": {"value": 10}, > "tolerance": {"value": 1} 1068,1069c1021,1022 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 1077,1081c1030,1031 < "velocity": [ < 0, < 0 < ], < "force": 20 --- > "force": {"value": 20}, > "velocity": {"value": [0, 0]} 1089c1039 < "time": 0.5 --- > "time": {"value": 0.5} 1125,1126c1075,1076 < "active": true, < "emitter": "predeath" --- > "active": {"value": true}, > "emitter": {"value": "predeath"} 1145c1095 < "uniqueId": "missionmanager" --- > "uniqueId": {"value": "missionmanager"} 1156,1157c1106,1107 < "entity": "manager", < "message": "noxBeamout" --- > "entity": {"key": "manager"}, > "message": {"value": "noxBeamout"} 1168c1118 < "transformationGroup": "head" --- > "transformationGroup": {"value": "head"} 1176,1177c1126,1127 < "state": "dying", < "type": "attack" --- > "state": {"value": "dying"}, > "type": {"value": "attack"} 1185c1135 < "time": 4 --- > "time": {"value": 4} 1199,1200c1149,1150 < "state": "beamOut", < "type": "teleport" --- > "state": {"value": "beamOut"}, > "type": {"value": "teleport"} 1208c1158 < "time": 0.4 --- > "time": {"value": 0.4} 1216,1217c1166,1167 < "type": "stage", < "tag": "dead" --- > "tag": {"value": "dead"}, > "type": {"value": "stage"} 1227,1228c1177,1178 < "state": "dyingcry", < "type": "attack" --- > "state": {"value": "dyingcry"}, > "type": {"value": "attack"} 1236c1186 < "sound": "dragonDeath" --- > "sound": {"value": "dragonDeath"} 1244c1194 < "time": 2 --- > "time": {"value": 2} 1252c1202 < "sound": "dragonDeathExplosion" --- > "sound": {"value": "dragonDeathExplosion"} 1259,1264c1209 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 1271,1278c1216,1217 < "first": [ < 1, < 0.5 < ], < "second": [ < "facingDirection", < 1 < ] --- > "first": {"value": [1, 0.5]}, > "second": {"value": ["facingDirection", 1]} 1289,1296c1228,1229 < "first": [ < 5, < 8 < ], < "second": [ < "facingDirection", < 1 < ] --- > "first": {"value": [5, 8]}, > "second": {"value": ["facingDirection", 1]} 1307,1314c1240,1247 < "aimVector": "aimVectorFlip", < "offset": "flipOffset", < "position": "self", < "projectileConfig": {}, < "projectileType": "dragonhead", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"key": "aimVectorFlip"}, > "offset": {"key": "flipOffset"}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "dragonhead"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 1322,1335c1255,1262 < "aimVector": [ < 1, < 0.5 < ], < "offset": [ < 0, < 0 < ], < "position": "self", < "projectileConfig": {}, < "projectileType": "dragonbone", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"value": [1, 0.5]}, > "offset": {"value": [0, 0]}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "dragonbone"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 1343,1356c1270,1277 < "aimVector": [ < 1, < 1 < ], < "offset": [ < 0, < 0 < ], < "position": "self", < "projectileConfig": {}, < "projectileType": "dragonbone", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"value": [1, 1]}, > "offset": {"value": [0, 0]}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "dragonbone"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 1364,1377c1285,1292 < "aimVector": [ < 1, < 0 < ], < "offset": [ < 0, < 0 < ], < "position": "self", < "projectileConfig": {}, < "projectileType": "dragonbone", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"value": [1, 0]}, > "offset": {"value": [0, 0]}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "dragonbone"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 1385,1398c1300,1307 < "aimVector": [ < 1, < -1 < ], < "offset": [ < 0, < 0 < ], < "position": "self", < "projectileConfig": {}, < "projectileType": "dragonbone", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"value": [1, -1]}, > "offset": {"value": [0, 0]}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "dragonbone"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 1406,1419c1315,1322 < "aimVector": [ < -1, < 1 < ], < "offset": [ < 0, < 0 < ], < "position": "self", < "projectileConfig": {}, < "projectileType": "dragonbone", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"value": [-1, 1]}, > "offset": {"value": [0, 0]}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "dragonbone"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 1427,1440c1330,1337 < "aimVector": [ < -1, < 0 < ], < "offset": [ < 0, < 0 < ], < "position": "self", < "projectileConfig": {}, < "projectileType": "dragonbone", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"value": [-1, 0]}, > "offset": {"value": [0, 0]}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "dragonbone"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 1448,1461c1345,1352 < "aimVector": [ < -1, < -0.5 < ], < "offset": [ < 0, < 0 < ], < "position": "self", < "projectileConfig": {}, < "projectileType": "dragonbone", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"value": [-1, -0.5]}, > "offset": {"value": [0, 0]}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "dragonbone"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 1469,1482c1360,1367 < "aimVector": [ < -1, < -1 < ], < "offset": [ < 0, < 0 < ], < "position": "self", < "projectileConfig": {}, < "projectileType": "dragonbone", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"value": [-1, -1]}, > "offset": {"value": [0, 0]}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "dragonbone"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 1490,1503c1375,1382 < "aimVector": [ < 1, < 1 < ], < "offset": [ < -5, < -8 < ], < "position": "self", < "projectileConfig": {}, < "projectileType": "dragonfoot", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"value": [1, 1]}, > "offset": {"value": [-5, -8]}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "dragonfoot"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 1511,1524c1390,1397 < "aimVector": [ < -1, < 1 < ], < "offset": [ < -5, < -8 < ], < "position": "self", < "projectileConfig": {}, < "projectileType": "dragonfoot", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"value": [-1, 1]}, > "offset": {"value": [-5, -8]}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "dragonfoot"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 1534c1407 < "shouldDie": true --- > "shouldDie": {"value": true} 1558,1559c1431,1432 < "percentage": 0.66, < "resource": "health" --- > "percentage": {"value": 0.66}, > "resource": {"value": "health"} 1567,1568c1440,1441 < "type": "stage", < "tag": "stage1" --- > "tag": {"value": "stage1"}, > "type": {"value": "stage"} 1584,1585c1457,1458 < "percentage": 0.33, < "resource": "health" --- > "percentage": {"value": 0.33}, > "resource": {"value": "health"} 1593,1594c1466,1467 < "type": "stage", < "tag": "stage2" --- > "tag": {"value": "stage2"}, > "type": {"value": "stage"} 1610,1611c1483,1484 < "percentage": 0, < "resource": "health" --- > "percentage": {"value": 0}, > "resource": {"value": "health"} 1619,1620c1492,1493 < "type": "stage", < "tag": "stage3" --- > "tag": {"value": "stage3"}, > "type": {"value": "stage"} behaviors\monsters\boss\dragonboss\dragonbreath.behavior 2a3 > "description": "", 7,10d7 < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/monster.lua", 12,13d8 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 17,24c12,13 < "headRotationCenter": [ < 4.125, < 2.5 < ], < "projectileSpawnOffset": [ < 3.75, < -3.5 < ], --- > "headRotationCenter": [4.125, 2.5], > "projectileSpawnOffset": [3.75, -3.5], 38c27 < "entity": "target" --- > "entity": {"key": "target"} 46,47c35,36 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 55,59c44,45 < "velocity": [ < 0, < 0 < ], < "force": 20 --- > "force": {"value": 20}, > "velocity": {"value": [0, 0]} 67c53 < "time": 0.5 --- > "time": {"value": 0.5} 77,81c63,64 < "first": "", < "second": [ < "facingDirection", < 1 < ] --- > "first": {"key": ""}, > "second": {"value": ["facingDirection", 1]} 92,94c75,77 < "entity": "self", < "target": "target", < "offset": "headRotationCenter" --- > "entity": {"key": "self"}, > "offset": {"key": "headRotationCenter"}, > "target": {"key": "target"} 111,115c94,95 < "first": "aimVector", < "second": [ < "facingDirection", < 1 < ] --- > "first": {"key": "aimVector"}, > "second": {"value": ["facingDirection", 1]} 126c106 < "vector": "facingVector" --- > "vector": {"key": "facingVector"} 137,138c117,118 < "addend": "", < "number": "targetAngle" --- > "addend": {"key": ""}, > "number": {"key": "targetAngle"} 157,158c137,138 < "vector": "", < "angle": "targetAngle" --- > "angle": {"key": "targetAngle"}, > "vector": {"key": ""} 169,170c149,150 < "first": "projectileOffset", < "second": "" --- > "first": {"key": "projectileOffset"}, > "second": {"key": ""} 181,185c161,162 < "first": "projectileOffset", < "second": [ < "facingDirection", < 1 < ] --- > "first": {"key": "projectileOffset"}, > "second": {"value": ["facingDirection", 1]} 204c181 < "transformationGroup": "head" --- > "transformationGroup": {"value": "head"} 212,214c189,191 < "angle": "targetAngle", < "transformationGroup": "head", < "rotationCenter": "" --- > "angle": {"key": "targetAngle"}, > "rotationCenter": {"key": ""}, > "transformationGroup": {"value": "head"} 224,225c201,202 < "state": "attack", < "type": "attack" --- > "state": {"value": "attack"}, > "type": {"value": "attack"} 233c210 < "time": 0.35 --- > "time": {"value": 0.35} 237,242c214,219 < "title": "playSound", < "type": "action", < "name": "playSound", < "parameters": { < "sound": "flameBreath" < } --- > "title": "playSound", > "type": "action", > "name": "playSound", > "parameters": { > "sound": {"value": "flameBreath"} > } 249c226 < "time": 0.15 --- > "time": {"value": 0.15} 257,265c234,241 < "aimVector": "aimVector", < "offset": "projectileOffset", < "position": "self", < "power": 10, < "projectileConfig": {}, < "projectileType": "dragonprojectile", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"key": "aimVector"}, > "offset": {"key": "projectileOffset"}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "dragonprojectile"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 273c249 < "time": 0.5 --- > "time": {"value": 0.5} 281,282c257,258 < "state": "winddown", < "type": "attack" --- > "state": {"value": "winddown"}, > "type": {"value": "attack"} 290c266 < "transformationGroup": "head" --- > "transformationGroup": {"value": "head"} 298c274 < "time": 0.5 --- > "time": {"value": 0.5} behaviors\monsters\boss\eyeboss\eyeboss.behavior 26,31c26 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 38,39c33,34 < "active": false, < "light": "glow" --- > "active": {"value": false}, > "light": {"value": "glow"} 47c42 < "shouldDie": false --- > "shouldDie": {"value": false} 55,56c50,51 < "state": "closed", < "type": "blink" --- > "state": {"value": "closed"}, > "type": {"value": "blink"} 64c59 < "direction": 1 --- > "direction": {"value": 1} 72c67 < "type": "None" --- > "type": {"value": "None"} 80,81c75,76 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 89c84 < "name": "invulnerable" --- > "name": {"value": "invulnerable"} 96,101c91 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 114,116c104,106 < "cooldown": 1, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 1}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 128,132c118,121 < "orderBy": "nearest", < "position": "self", < "range": 100, < "type": "cultistbossend", < "orderby": "nearest" --- > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 100}, > "type": {"value": "cultistbossend"} 150,151c139,140 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 159,160c148,149 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 166,171c155 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 178c162 < "time": 0.8 --- > "time": {"value": 0.8} 195,198c179 < "speedRange": [ < 1, < 2 < ] --- > "speedRange": {"value": [1, 2]} 205,210c186 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 217c193 < "time": 2 --- > "time": {"value": 2} 225,226c201,202 < "state": "open", < "type": "blink" --- > "state": {"value": "open"}, > "type": {"value": "blink"} 234,235c210,211 < "active": true, < "light": "glow" --- > "active": {"value": true}, > "light": {"value": "glow"} 243c219 < "time": 0.5 --- > "time": {"value": 0.5} 251c227 < "enable": true --- > "enable": {"value": true} 259c235 < "type": "Special" --- > "type": {"value": "Special"} 267,272c243,246 < "position": "self", < "range": 150, < "entityTypes": [ < "object" < ], < "type": "lightup" --- > "entityTypes": {"value": ["object"]}, > "position": {"key": "self"}, > "range": {"value": 150}, > "type": {"value": "lightup"} 280c254 < "time": 2 --- > "time": {"value": 2} 301c275 < "name": "invulnerable" --- > "name": {"value": "invulnerable"} 310,311c284,285 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 319,324c293,298 < "targetQueryRange": 150, < "keepTargetInRange": 150, < "keepTargetInSight": true, < "queryTargets": true, < "targetOnDamage": true, < "targetOutOfSightTime": 0 --- > "targetQueryRange": {"value": 150}, > "keepTargetInRange": {"value": 150}, > "keepTargetInSight": {"value": true}, > "queryTargets": {"value": true}, > "targetOnDamage": {"value": true}, > "targetOutOfSightTime": {"value": 0} 332,333c306,307 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 340,345c314 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 352c321 < "type": "monsterSpawned" --- > "type": {"value": "monsterSpawned"} 363c332,335 < "entity": "newMonster", --- > "entity": {"key": "newMonster"}, > "list": {"key": "monsters"} > }, > "output": { 374,375c346,347 < "list": "monsters", < "type": "entity" --- > "list": {"key": "monsters"}, > "type": {"value": "entity"} 382c354 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 399,400c371,372 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 408c380 < "entity": "target" --- > "entity": {"key": "target"} 415,420c387 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 426,431c393 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 438c400 < "uniqueId": "spawnerright" --- > "uniqueId": {"value": "spawnerright"} 449c411 < "uniqueId": "spawnerleft" --- > "uniqueId": {"value": "spawnerleft"} 460c422 < "uniqueId": "tentacleleft" --- > "uniqueId": {"value": "tentacleleft"} 471c433 < "uniqueId": "tentacleright" --- > "uniqueId": {"value": "tentacleright"} 484c446 < "enable": true --- > "enable": {"value": true} 492,493c454,455 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 501,502c463,464 < "percentage": 0, < "resource": "health" --- > "percentage": {"value": 0}, > "resource": {"value": "health"} 510,511c472,473 < "phase1": "", < "phase2": "" --- > "phase1": {"key": ""}, > "phase2": {"key": ""} 519,520c481,482 < "phase1": "", < "phase2": "" --- > "phase1": {"value": ""}, > "phase2": {"value": ""} 528c490 < "aggressive": true --- > "aggressive": {"value": true} 536,537c498,499 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 543,548c505 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 565,570c522 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 582,583c534,535 < "percentage": "", < "resource": "health" --- > "percentage": {"key": ""}, > "resource": {"value": "health"} 598,599c550,551 < "entity": "tentacleleft", < "message": "attack" --- > "entity": {"key": "tentacleleft"}, > "message": {"value": "attack"} 607,608c559,560 < "entity": "tentacleright", < "message": "attack" --- > "entity": {"key": "tentacleright"}, > "message": {"value": "attack"} 621c573 < "idleTime": 12 --- > "idleTime": {"value": 12} 633,638c585 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 650,651c597,598 < "percentage": "", < "resource": "health" --- > "percentage": {"key": ""}, > "resource": {"value": "health"} 676,681c623 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 693,694c635,636 < "percentage": "", < "resource": "health" --- > "percentage": {"key": ""}, > "resource": {"value": "health"} 702,707c644 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 714,715c651,652 < "entity": "tentacleleft", < "message": "attack" --- > "entity": {"key": "tentacleleft"}, > "message": {"value": "attack"} 723,724c660,661 < "entity": "tentacleright", < "message": "attack" --- > "entity": {"key": "tentacleright"}, > "message": {"value": "attack"} 742,743c679,680 < "entity": "tentacleleft", < "message": "attack" --- > "entity": {"key": "tentacleleft"}, > "message": {"value": "attack"} 751,752c688,689 < "entity": "tentacleright", < "message": "attack" --- > "entity": {"key": "tentacleright"}, > "message": {"value": "attack"} 765c702 < "idleTime": 12 --- > "idleTime": {"value": 12} 778,783c715 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 795,796c727,728 < "percentage": "", < "resource": "health" --- > "percentage": {"key": ""}, > "resource": {"value": "health"} 811,812c743,744 < "entity": "tentacleleft", < "message": "attack" --- > "entity": {"key": "tentacleleft"}, > "message": {"value": "attack"} 820,821c752,753 < "entity": "tentacleright", < "message": "attack" --- > "entity": {"key": "tentacleright"}, > "message": {"value": "attack"} 828,833c760 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 840,841c767,768 < "entity": "tentacleleft", < "message": "attack" --- > "entity": {"key": "tentacleleft"}, > "message": {"value": "attack"} 849,850c776,777 < "entity": "tentacleright", < "message": "attack" --- > "entity": {"key": "tentacleright"}, > "message": {"value": "attack"} 870,871c797,798 < "entity": "tentacleleft", < "message": "attack" --- > "entity": {"key": "tentacleleft"}, > "message": {"value": "attack"} 879,880c806,807 < "entity": "tentacleright", < "message": "attack" --- > "entity": {"key": "tentacleright"}, > "message": {"value": "attack"} 892c819 < "idleTime": 12 --- > "idleTime": {"value": 12} 911,916c838 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 928,929c850,851 < "percentage": 0, < "resource": "health" --- > "percentage": {"value": 0}, > "resource": {"value": "health"} 937,942c859 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 949,950c866,867 < "entity": "rightspawner", < "message": "reset" --- > "entity": {"key": "rightspawner"}, > "message": {"value": "reset"} 958,959c875,876 < "entity": "leftspawner", < "message": "reset" --- > "entity": {"key": "leftspawner"}, > "message": {"value": "reset"} 974,975c891,892 < "percentage": 0, < "resource": "health" --- > "percentage": {"value": 0}, > "resource": {"value": "health"} 984,985c901,902 < "state": "dying", < "type": "eye" --- > "state": {"value": "dying"}, > "type": {"value": "eye"} 993,994c910,911 < "active": true, < "emitter": "deathparticles1" --- > "active": {"value": true}, > "emitter": {"value": "deathparticles1"} 1002,1003c919,920 < "sound": "deathexplosion", < "loops": -1 --- > "loops": {"value": -1}, > "sound": {"value": "deathexplosion"} 1011c928 < "enable": false --- > "enable": {"value": false} 1024,1025c941,942 < "list": "monsters", < "type": "entity" --- > "list": {"key": "monsters"}, > "type": {"value": "entity"} 1037,1038c954,955 < "entity": "eachItem", < "message": "despawn" --- > "entity": {"key": "eachItem"}, > "message": {"value": "despawn"} 1049,1050c966,967 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 1057,1062c974 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 1069c981 < "number": 2 --- > "number": {"value": 2} 1080,1081c992,993 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 1087,1092c999 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 1099c1006 < "time": "shaftInterval" --- > "time": {"key": "shaftInterval"} 1113,1114c1020,1021 < "sound": "shaft", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "shaft"} 1127,1132c1034 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 1139,1140c1041,1042 < "first": "shaftInterval", < "second": 0.3 --- > "first": {"key": "shaftInterval"}, > "second": {"value": 0.3} 1148,1149c1050,1051 < "number": "shaftInterval", < "factor": 0.9 --- > "factor": {"value": 0.9}, > "number": {"key": "shaftInterval"} 1162c1064 < "number": 0.3 --- > "number": {"value": 0.3} 1179,1184c1081 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 1191,1192c1088,1089 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 1200,1201c1097,1098 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 1207,1212c1104 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 1219c1111 < "time": 0.25 --- > "time": {"value": 0.25} 1227,1232c1119,1120 < "moveTime": 0.1, < "moveDelays": { < "left": 0, < "middle": 0.05, < "right": 0.1 < } --- > "moveDelays": {"value": {"left": 0, "middle": 0.05, "right": 0.1}}, > "moveTime": {"value": 0.1} 1249,1252c1137 < "speedRange": [ < 3, < 4 < ] --- > "speedRange": {"value": [3, 4]} 1259,1264c1144 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 1281c1161 < "sound": "deathexplosion" --- > "sound": {"value": "deathexplosion"} 1289c1169 < "time": 3 --- > "time": {"value": 3} 1308,1313c1188 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 1320c1195 < "enable": false --- > "enable": {"value": false} 1328,1329c1203,1204 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 1337,1338c1212,1213 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 1344,1349c1219 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 1356c1226 < "time": 1.4 --- > "time": {"value": 1.4} 1373,1376c1243 < "speedRange": [ < 1, < 3 < ] --- > "speedRange": {"value": [1, 3]} 1383,1388c1250 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 1395,1396c1257,1258 < "percentage": 1, < "resource": "health" --- > "percentage": {"value": 1}, > "resource": {"value": "health"} 1404c1266 < "aggressive": false --- > "aggressive": {"value": false} 1417,1418c1279,1280 < "list": "monsters", < "type": "entity" --- > "list": {"key": "monsters"}, > "type": {"value": "entity"} 1430,1431c1292,1293 < "entity": "eachItem", < "message": "despawn" --- > "entity": {"key": "eachItem"}, > "message": {"value": "despawn"} 1441,1446c1303 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 1453,1454c1310,1311 < "entity": "rightspawner", < "message": "reset" --- > "entity": {"key": "rightspawner"}, > "message": {"value": "reset"} 1462,1463c1319,1320 < "entity": "leftspawner", < "message": "reset" --- > "entity": {"key": "leftspawner"}, > "message": {"value": "reset"} behaviors\monsters\boss\eyeboss\eyebossanimate.behavior 2a3 > "description": "", 10c11 < "phase2" : 0.75 --- > "phase2": 0.75 23,24c24,25 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 32,33c33,34 < "percentage": "", < "resource": "health" --- > "percentage": {"key": ""}, > "resource": {"value": "health"} 41,42c42,43 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 48,53c49 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 60c56 < "time": 0.8 --- > "time": {"value": 0.8} 77,80c73 < "speedRange": [ < 1, < 2 < ] --- > "speedRange": {"value": [1, 2]} 90,91c83,84 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 99,100c92,93 < "percentage": "", < "resource": "health" --- > "percentage": {"key": ""}, > "resource": {"value": "health"} 108,109c101,102 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 115,120c108 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 127c115 < "time": 0.5 --- > "time": {"value": 0.5} 135,140c123,124 < "moveTime": 0.15, < "moveDelays": { < "left": 0, < "middle": 0.075, < "right": 0.15 < } --- > "moveDelays": {"value": {"left": 0, "middle": 0.075, "right": 0.15}}, > "moveTime": {"value": 0.15} 151,154c135 < "speedRange": [ < 1.5, < 2.5 < ] --- > "speedRange": {"value": [1.5, 2.5]} 164,165c145,146 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 173,174c154,155 < "percentage": 0, < "resource": "health" --- > "percentage": {"value": 0}, > "resource": {"value": "health"} 182,183c163,164 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 189,194c170 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 201c177 < "time": 0.25 --- > "time": {"value": 0.25} 209,214c185,186 < "moveTime": 0.1, < "moveDelays": { < "left": 0, < "middle": 0.05, < "right": 0.1 < } --- > "moveDelays": {"value": {"left": 0, "middle": 0.05, "right": 0.1}}, > "moveTime": {"value": 0.1} 225,228c197 < "speedRange": [ < 2, < 3 < ] --- > "speedRange": {"value": [2, 3]} behaviors\monsters\boss\eyeboss\eyebossbeam.behavior 13,18c13 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 25,26c20,21 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 34,36c29,31 < "type": "eye", < "state": "windup", < "fallback": "winddown" --- > "fallback": {"value": "winddown"}, > "state": {"value": "windup"}, > "type": {"value": "eye"} 43,48c38 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 55,56c45,46 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 64c54 < "emitter": "beamtelegraph" --- > "emitter": {"value": "beamtelegraph"} 72c62 < "time": 3 --- > "time": {"value": 3} 82,83c72,73 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 91,93c81,83 < "type": "beam", < "state": "windup", < "fallback": "winddown" --- > "fallback": {"value": "winddown"}, > "state": {"value": "windup"}, > "type": {"value": "beam"} 100,105c90 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 112c97 < "time": 0.2 --- > "time": {"value": 0.2} 120,121c105,106 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 129c114 < "emitter": "beamflames" --- > "emitter": {"value": "beamflames"} 137c122 < "time": 3 --- > "time": {"value": 3} 151c136 < "time": 0.3 --- > "time": {"value": 0.3} 163c148 < "time": 0.3 --- > "time": {"value": 0.3} behaviors\monsters\boss\eyeboss\eyebossdeath.behavior 6,9c6 < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/time.lua" --- > "/scripts/actions/time.lua" 16,21c13 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 27,32c19 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 48,49c35,36 < "list": "players", < "type": "entity" --- > "list": {"key": "players"}, > "type": {"value": "entity"} 61,62c48,49 < "entity": "eachItem", < "message": "ruinDestroyed" --- > "entity": {"key": "eachItem"}, > "message": {"value": "ruinDestroyed"} 74c61 < "time": 2 --- > "time": {"value": 2} 81,86c68 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 102,103c84,85 < "list": "players", < "type": "entity" --- > "list": {"key": "players"}, > "type": {"value": "entity"} 115,119c97,99 < "entity": "eachItem", < "message": "queueRadioMessage", < "arguments": [ < "tentaclemission-destruction1" < ] --- > "arguments": {"value": ["tentaclemission-destruction1"]}, > "entity": {"key": "eachItem"}, > "message": {"value": "queueRadioMessage"} 131c111 < "time": 8 --- > "time": {"value": 8} 138,143c118 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 159,160c134,135 < "list": "players", < "type": "entity" --- > "list": {"key": "players"}, > "type": {"value": "entity"} 172,176c147,149 < "entity": "eachItem", < "message": "queueRadioMessage", < "arguments": [ < "tentaclemission-destruction2" < ] --- > "arguments": {"value": ["tentaclemission-destruction2"]}, > "entity": {"key": "eachItem"}, > "message": {"value": "queueRadioMessage"} 188c161 < "time": 5 --- > "time": {"value": 5} 195,200c168 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 216,217c184,185 < "list": "players", < "type": "entity" --- > "list": {"key": "players"}, > "type": {"value": "entity"} 229,233c197,199 < "entity": "eachItem", < "message": "queueRadioMessage", < "arguments": [ < "tentaclemission-destruction3" < ] --- > "arguments": {"value": ["tentaclemission-destruction3"]}, > "entity": {"key": "eachItem"}, > "message": {"value": "queueRadioMessage"} 245c211 < "time": 3 --- > "time": {"value": 3} 252,257c218 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 273,274c234,235 < "list": "players", < "type": "entity" --- > "list": {"key": "players"}, > "type": {"value": "entity"} 286,290c247,249 < "entity": "eachItem", < "message": "playCinematic", < "arguments": [ < "/cinematics/story/finale/finale.cinematic" < ] --- > "arguments": {"value": ["/cinematics/story/finale/finale.cinematic"]}, > "entity": {"key": "eachItem"}, > "message": {"value": "playCinematic"} 302c261 < "time": 2 --- > "time": {"value": 2} 309,314c268 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 330,331c284,285 < "list": "players", < "type": "entity" --- > "list": {"key": "players"}, > "type": {"value": "entity"} 343,347c297,299 < "entity": "eachItem", < "message": "warp", < "arguments": [ < "InstanceWorld:outpost=arkteleporter" < ] --- > "arguments": {"value": ["InstanceWorld:outpost=arkteleporter"]}, > "entity": {"key": "eachItem"}, > "message": {"value": "warp"} 356c308 < } \ No newline at end of file --- > } behaviors\monsters\boss\eyeboss\eyebossidle.behavior 2a3 > "description": "", 5,8c6 < "/scripts/actions/monster.lua", < "/scripts/actions/animator.lua", < "/scripts/actions/entity.lua", < "/monsters/monster.lua" --- > "/scripts/actions/animator.lua" 18,19c16,17 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 27,28c25,26 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 34,39c32 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 46c39 < "time": 5 --- > "time": {"value": 5} 54,55c47,48 < "state": "blink", < "type": "blink" --- > "state": {"value": "blink"}, > "type": {"value": "blink"} 66,67c59,60 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 73,78c66 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 85c73 < "time": 3 --- > "time": {"value": 3} 93,94c81,82 < "state": "sweep", < "type": "eye" --- > "state": {"value": "sweep"}, > "type": {"value": "eye"} 105c93 < "time": "" --- > "time": {"value": ""} behaviors\monsters\boss\eyeboss\eyebossmessaging.behavior 23,24c23,24 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 32,33c32,33 < "percentage": "", < "resource": "health" --- > "percentage": {"key": ""}, > "resource": {"value": "health"} 40,45c40 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 51,56c46 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 63,67c53,55 < "entity": "rightspawner", < "message": "enableSpawner", < "arguments": [ < "blob1" < ] --- > "arguments": {"value": ["blob1"]}, > "entity": {"key": "rightspawner"}, > "message": {"value": "enableSpawner"} 75,79c63,65 < "entity": "leftspawner", < "message": "enableSpawner", < "arguments": [ < "blob1" < ] --- > "arguments": {"value": ["blob1"]}, > "entity": {"key": "leftspawner"}, > "message": {"value": "enableSpawner"} 88,93c74 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 100,104c81,83 < "entity": "rightspawner", < "message": "enableSpawner", < "arguments": [ < "blob2" < ] --- > "arguments": {"value": ["blob2"]}, > "entity": {"key": "rightspawner"}, > "message": {"value": "enableSpawner"} 112,116c91,93 < "entity": "leftspawner", < "message": "enableSpawner", < "arguments": [ < "blob2" < ] --- > "arguments": {"value": ["blob2"]}, > "entity": {"key": "leftspawner"}, > "message": {"value": "enableSpawner"} 125,130c102 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 137,141c109,111 < "entity": "rightspawner", < "message": "enableSpawner", < "arguments": [ < "blob3" < ] --- > "arguments": {"value": ["blob3"]}, > "entity": {"key": "rightspawner"}, > "message": {"value": "enableSpawner"} 149,153c119,121 < "entity": "leftspawner", < "message": "enableSpawner", < "arguments": [ < "blob3" < ] --- > "arguments": {"value": ["blob3"]}, > "entity": {"key": "leftspawner"}, > "message": {"value": "enableSpawner"} 162,167c130 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 174,178c137,139 < "entity": "rightspawner", < "message": "enableSpawner", < "arguments": [ < "blob4" < ] --- > "arguments": {"value": ["blob4"]}, > "entity": {"key": "rightspawner"}, > "message": {"value": "enableSpawner"} 186,190c147,149 < "entity": "leftspawner", < "message": "enableSpawner", < "arguments": [ < "blob4" < ] --- > "arguments": {"value": ["blob4"]}, > "entity": {"key": "leftspawner"}, > "message": {"value": "enableSpawner"} 199,204c158 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 211,215c165,167 < "entity": "rightspawner", < "message": "enableSpawner", < "arguments": [ < "blob5" < ] --- > "arguments": {"value": ["blob5"]}, > "entity": {"key": "rightspawner"}, > "message": {"value": "enableSpawner"} 223,227c175,177 < "entity": "leftspawner", < "message": "enableSpawner", < "arguments": [ < "blob5" < ] --- > "arguments": {"value": ["blob5"]}, > "entity": {"key": "leftspawner"}, > "message": {"value": "enableSpawner"} 247,248c197,198 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 256,257c206,207 < "percentage": "", < "resource": "health" --- > "percentage": {"key": ""}, > "resource": {"value": "health"} 264,269c214 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 286,287c231,232 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 295,296c240,241 < "percentage": 0, < "resource": "health" --- > "percentage": {"value": 0}, > "resource": {"value": "health"} 303,308c248 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 314,319c254 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 326,330c261,263 < "entity": "rightspawner", < "message": "enableSpawner", < "arguments": [ < "blob7" < ] --- > "arguments": {"value": ["blob7"]}, > "entity": {"key": "rightspawner"}, > "message": {"value": "enableSpawner"} 338,342c271,273 < "entity": "leftspawner", < "message": "enableSpawner", < "arguments": [ < "blob7" < ] --- > "arguments": {"value": ["blob7"]}, > "entity": {"key": "leftspawner"}, > "message": {"value": "enableSpawner"} 351,356c282 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 363,367c289,291 < "entity": "rightspawner", < "message": "enableSpawner", < "arguments": [ < "blob6" < ] --- > "arguments": {"value": ["blob6"]}, > "entity": {"key": "rightspawner"}, > "message": {"value": "enableSpawner"} 375,379c299,301 < "entity": "leftspawner", < "message": "enableSpawner", < "arguments": [ < "blob6" < ] --- > "arguments": {"value": ["blob6"]}, > "entity": {"key": "leftspawner"}, > "message": {"value": "enableSpawner"} 388,393c310 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 400,404c317,319 < "entity": "rightspawner", < "message": "enableSpawner", < "arguments": [ < "blob8" < ] --- > "arguments": {"value": ["blob8"]}, > "entity": {"key": "rightspawner"}, > "message": {"value": "enableSpawner"} 412,416c327,329 < "entity": "leftspawner", < "message": "enableSpawner", < "arguments": [ < "blob8" < ] --- > "arguments": {"value": ["blob8"]}, > "entity": {"key": "leftspawner"}, > "message": {"value": "enableSpawner"} behaviors\monsters\boss\eyeboss\eyebossspawn.behavior 6d5 < "/scripts/actions/monster.lua", 8,9d6 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 14,21c11,12 < "biomeStart": [ < -4.5625, < 0 < ], < "biomePan": [ < 9, < 0 < ] --- > "biomeStart": [-4.5625, 0], > "biomePan": [9, 0] 28,29c19,20 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 42c33 < "time": 3.7 --- > "time": {"value": 3.7} 58,63c49 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 70c56 < "transformationGroup": "biome" --- > "transformationGroup": {"value": "biome"} 78,82c64,65 < "first": "", < "second": [ < "biomePanRatio", < 1 < ] --- > "first": {"key": ""}, > "second": {"value": ["biomePanRatio", 1]} 93,94c76,77 < "first": "biomeOffset", < "second": "" --- > "first": {"key": "biomeOffset"}, > "second": {"key": ""} 105,106c88,89 < "transformationGroup": "biome", < "offset": "biomeOffset" --- > "offset": {"key": "biomeOffset"}, > "transformationGroup": {"value": "biome"} 116,121c99 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 128,129c106,107 < "state": "spawnwindup", < "type": "eye" --- > "state": {"value": "spawnwindup"}, > "type": {"value": "eye"} 137c115 < "windup": 1.5 --- > "windup": {"value": 1.5} 145c123 < "time": 1.5 --- > "time": {"value": 1.5} 153,154c131,132 < "state": "spawnwinddown", < "type": "eye" --- > "state": {"value": "spawnwinddown"}, > "type": {"value": "eye"} 162c140 < "time": 0.7 --- > "time": {"value": 0.7} behaviors\monsters\boss\guardian\attacksequence.behavior 16,21c16 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 33,34c28,29 < "percentage": "", < "resource": "health" --- > "percentage": {"key": ""}, > "resource": {"value": "health"} 43c38 < "actions": "" --- > "actions": {"key": ""} behaviors\monsters\boss\guardian\beamspin.behavior 2a3 > "description": "", 22,27c23 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 34c30 < "number": 0 --- > "number": {"value": 0} 54c50 < "direction": "face" --- > "direction": {"key": "face"} 62,63c58,59 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 71,73c67,69 < "type": "lefthand", < "state": "open", < "fallback": "close" --- > "fallback": {"value": "close"}, > "state": {"value": "open"}, > "type": {"value": "lefthand"} 81,83c77,79 < "type": "righthand", < "state": "open", < "fallback": "close" --- > "fallback": {"value": "close"}, > "state": {"value": "open"}, > "type": {"value": "righthand"} 91,93c87,89 < "type": "body", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "body"} 100,105c96 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 112,113c103,104 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 121c112 < "time": "" --- > "time": {"value": ""} 128,133c119 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 140,141c126,127 < "addend": 3.14, < "number": "rightAngle" --- > "addend": {"value": 3.14}, > "number": {"key": "rightAngle"} 152,153c138,139 < "angle": "rightAngle", < "handPart": "righthand" --- > "angle": {"key": "rightAngle"}, > "handPart": {"value": "righthand"} 161,162c147,148 < "angle": "leftAngle", < "handPart": "lefthand" --- > "angle": {"key": "leftAngle"}, > "handPart": {"value": "lefthand"} 174,175c160,161 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 183,185c169,171 < "type": "head", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "head"} 192,197c178 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 204,205c185,186 < "sound": "beamWindup", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "beamWindup"} 213c194 < "time": 0.5 --- > "time": {"value": 0.5} 221,222c202,203 < "sound": "beamStart", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "beamStart"} 230,231c211,212 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 239c220 < "sound": "beamLoop" --- > "sound": {"value": "beamLoop"} 247,248c228,229 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 256,258c237 < "modifiers": { < "speedModifier": 0.5 < } --- > "modifiers": {"value": {"speedModifier": 0.5}} 265,270c244 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 277,278c251,252 < "number": "", < "factor": "dt" --- > "factor": {"key": "dt"}, > "number": {"key": ""} 289,290c263,264 < "number": "face", < "factor": "delta" --- > "factor": {"key": "delta"}, > "number": {"key": "face"} 301,302c275,276 < "addend": "delta", < "number": "rightAngle" --- > "addend": {"key": "delta"}, > "number": {"key": "rightAngle"} 313,314c287,288 < "addend": 3.14, < "number": "rightAngle" --- > "addend": {"value": 3.14}, > "number": {"key": "rightAngle"} 327c301 < "entity": "target" --- > "entity": {"key": "target"} 338,340c312,314 < "position": "targetPosition", < "outerRange": 12.5, < "innerRange": 2 --- > "innerRange": {"value": 2}, > "outerRange": {"value": 12.5}, > "position": {"key": "targetPosition"} 348c322 < "direction": "face" --- > "direction": {"key": "face"} 364c338 < "time": "" --- > "time": {"value": ""} 374,375c348,349 < "sound": "beamWinddown", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "beamWinddown"} 391,402c365,373 < "angle": "rightAngle", < "duration": "", < "handPart": "righthand", < "offset": [ < 0, < 0 < ], < "power": 10, < "damagePart": "shortrightbeam", < "beamType": "damage", < "bounces": 0, < "maxLength": "" --- > "angle": {"key": "rightAngle"}, > "beamType": {"value": "damage"}, > "bounces": {"value": 0}, > "damagePart": {"value": "shortrightbeam"}, > "duration": {"key": ""}, > "handPart": {"value": "righthand"}, > "maxLength": {"key": ""}, > "offset": {"value": [0, 0]}, > "power": {"value": 10} 410,421c381,389 < "angle": "leftAngle", < "duration": "", < "handPart": "lefthand", < "offset": [ < 0, < 0 < ], < "power": 10, < "damagePart": "shortleftbeam", < "beamType": "damage", < "bounces": 0, < "maxLength": "" --- > "angle": {"key": "leftAngle"}, > "beamType": {"value": "damage"}, > "bounces": {"value": 0}, > "damagePart": {"value": "shortleftbeam"}, > "duration": {"key": ""}, > "handPart": {"value": "lefthand"}, > "maxLength": {"key": ""}, > "offset": {"value": [0, 0]}, > "power": {"value": 10} 435,436c403,404 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 444,445c412,413 < "angle": "rightAngle", < "handPart": "righthand" --- > "angle": {"key": "rightAngle"}, > "handPart": {"value": "righthand"} 453,454c421,422 < "angle": "leftAngle", < "handPart": "lefthand" --- > "angle": {"key": "leftAngle"}, > "handPart": {"value": "lefthand"} 462c430 < "time": 0.6 --- > "time": {"value": 0.6} behaviors\monsters\boss\guardian\damagestun.behavior 18,23c18 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 29,32c24 < "parameters": {}, < "output": { < "damageSource": "" < } --- > "parameters": {} 44,45c36,37 < "list": "newMinions", < "type": "entity" --- > "list": {"key": "newMinions"}, > "type": {"value": "entity"} 52,53c44,45 < "entity": "eachItem", < "message": "despawn" --- > "entity": {"key": "eachItem"}, > "message": {"value": "despawn"} 72,76c64,65 < "first": "velocity", < "second": [ < -0.2, < -0.2 < ] --- > "first": {"key": "velocity"}, > "second": {"value": [-0.2, -0.2]} 87c76 < "velocity": "velocity" --- > "velocity": {"key": "velocity"} 95,96c84,85 < "name": "vulnerability", < "duration": 6 --- > "duration": {"value": 6}, > "name": {"value": "vulnerability"} 104,105c93,94 < "state": "pierce", < "type": "shield" --- > "state": {"value": "pierce"}, > "type": {"value": "shield"} 113,114c102,103 < "sound": "shieldBreak", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "shieldBreak"} 122,123c111,112 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 131c120 < "time": 6 --- > "time": {"value": 6} 138,143c127 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 150c134 < "time": 5 --- > "time": {"value": 5} 158,159c142,143 < "position": "spawn", < "tolerance": 1 --- > "position": {"key": "spawn"}, > "tolerance": {"value": 1} 177,178c161,162 < "state": "active", < "type": "shield" --- > "state": {"value": "active"}, > "type": {"value": "shield"} 186,187c170,171 < "sound": "shieldRestore", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "shieldRestore"} 192c176 < } \ No newline at end of file --- > } behaviors\monsters\boss\guardian\doublegroundbeam.behavior 14,22c14,15 < "leftPosition": [ < 0, < 0 < ], < "rightPosition": [ < 0, < 0 < ], < "power": 10, --- > "leftPosition": [0, 0], > "rightPosition": [0, 0], 29,34c22 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 46,51c34 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 58,62c41,42 < "offset": [ < 0, < 0 < ], < "position": "" --- > "offset": {"value": [0, 0]}, > "position": {"key": ""} 73,77c53,54 < "offset": [ < 0, < 0 < ], < "position": "" --- > "offset": {"value": [0, 0]}, > "position": {"key": ""} 89,94c66 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 101,105c73,74 < "offset": [ < 0, < 0 < ], < "position": "" --- > "offset": {"value": [0, 0]}, > "position": {"key": ""} 116,120c85,86 < "offset": [ < 0, < 0 < ], < "position": "" --- > "offset": {"value": [0, 0]}, > "position": {"key": ""} 135,136c101,102 < "position": "start", < "tolerance": 0.5 --- > "position": {"key": "start"}, > "tolerance": {"value": 0.5} 144c110 < "time": 0.5 --- > "time": {"value": 0.5} 152,153c118,119 < "from": "start", < "to": "end" --- > "from": {"key": "start"}, > "to": {"key": "end"} 164c130 < "direction": "beamDir" --- > "direction": {"key": "beamDir"} 175c141 < "direction": "beamDir" --- > "direction": {"key": "beamDir"} 183,186c149 < "vector": [ < "beamDir", < 0 < ] --- > "vector": {"value": ["beamDir", 0]} 197,200c160 < "vector": [ < -6, < 6 < ] --- > "vector": {"value": [-6, 6]} 211,214c171 < "vector": [ < 0, < -6 < ] --- > "vector": {"value": [0, -6]} 225c182 < "time": 0.2 --- > "time": {"value": 0.2} 236,237c193,194 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 245,247c202,204 < "type": "body", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "body"} 255,257c212,214 < "type": "lefthand", < "state": "open", < "fallback": "close" --- > "fallback": {"value": "close"}, > "state": {"value": "open"}, > "type": {"value": "lefthand"} 265,267c222,224 < "type": "righthand", < "state": "open", < "fallback": "close" --- > "fallback": {"value": "close"}, > "state": {"value": "open"}, > "type": {"value": "righthand"} 274,279c231 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 286,287c238,239 < "sound": "doubleBeamPrepare", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "doubleBeamPrepare"} 295,296c247,248 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 304c256 < "time": 1 --- > "time": {"value": 1} 314,319c266 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 326,327c273,274 < "first": "rightOrigin", < "second": "offsetMultiplier" --- > "first": {"key": "rightOrigin"}, > "number": {"key": "offsetMultiplier"} 338,339c285,286 < "first": "leftOrigin", < "second": "offsetMultiplier" --- > "first": {"key": "leftOrigin"}, > "number": {"key": "offsetMultiplier"} 350,352c297,299 < "angle": "beamAngle", < "handPart": "righthand", < "offset": "rightOffset" --- > "angle": {"key": "beamAngle"}, > "handPart": {"value": "righthand"}, > "offset": {"key": "rightOffset"} 360,362c307,309 < "angle": "beamAngle", < "handPart": "lefthand", < "offset": "leftOffset" --- > "angle": {"key": "beamAngle"}, > "handPart": {"value": "lefthand"}, > "offset": {"key": "leftOffset"} 374,375c321,322 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 382,387c329 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 394,395c336,337 < "sound": "beamWindup", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "beamWindup"} 403c345 < "time": 0.5 --- > "time": {"value": 0.5} 411,412c353,354 < "sound": "beamStart", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "beamStart"} 420,421c362,363 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 429c371 < "sound": "beamLoop" --- > "sound": {"value": "beamLoop"} 437c379 < "time": "" --- > "time": {"value": ""} 447,448c389,390 < "sound": "beamWinddown", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "beamWinddown"} 463,468c405 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 475c412 < "time": 0.5 --- > "time": {"value": 0.5} 486,487c423,424 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 495,496c432,433 < "maxLoops": 2, < "untilSuccess": false --- > "maxLoops": {"value": 2}, > "untilSuccess": {"value": false} 503c440 < "time": 2 --- > "time": {"value": 2} 514,519c451 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 526,527c458,459 < "func": "quadSin", < "ratio": "ratio" --- > "func": {"value": "quadSin"}, > "ratio": {"key": "ratio"} 538,542c470,471 < "first": [ < 0, < 12 < ], < "second": "ratio" --- > "first": {"value": [0, 12]}, > "number": {"key": "ratio"} 553,557c482,483 < "first": [ < 0, < -12 < ], < "second": "ratio" --- > "first": {"value": [0, -12]}, > "number": {"key": "ratio"} 568,569c494,495 < "first": "leftOrigin", < "second": "leftOffsetModifier" --- > "first": {"key": "leftOrigin"}, > "second": {"key": "leftOffsetModifier"} 580,581c506,507 < "first": "rightOrigin", < "second": "rightOffsetModifier" --- > "first": {"key": "rightOrigin"}, > "second": {"key": "rightOffsetModifier"} 596c522 < "time": 0.5 --- > "time": {"value": 0.5} 608,613c534 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 620,621c541,542 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 629c550 < "time": 4.5 --- > "time": {"value": 4.5} 640,642c561,563 < "type": "head", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "head"} 660,665c581,586 < "angle": "beamAngle", < "duration": "", < "handPart": "lefthand", < "offset": "leftOffset", < "power": 10, < "damagePart": "lefthand" --- > "angle": {"key": "beamAngle"}, > "damagePart": {"value": "lefthand"}, > "duration": {"key": ""}, > "handPart": {"value": "lefthand"}, > "offset": {"key": "leftOffset"}, > "power": {"value": 10} 673,678c594,599 < "angle": "beamAngle", < "duration": "", < "handPart": "righthand", < "offset": "rightOffset", < "power": 10, < "damagePart": "righthand" --- > "angle": {"key": "beamAngle"}, > "damagePart": {"value": "righthand"}, > "duration": {"key": ""}, > "handPart": {"value": "righthand"}, > "offset": {"key": "rightOffset"}, > "power": {"value": 10} 692,693c613,614 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 701c622 < "time": 0.5 --- > "time": {"value": 0.5} 712,714c633,635 < "angle": "beamAngle", < "handPart": "righthand", < "offset": "rightOffset" --- > "angle": {"key": "beamAngle"}, > "handPart": {"value": "righthand"}, > "offset": {"key": "rightOffset"} 722,724c643,645 < "angle": "beamAngle", < "handPart": "lefthand", < "offset": "leftOffset" --- > "angle": {"key": "beamAngle"}, > "handPart": {"value": "lefthand"}, > "offset": {"key": "leftOffset"} 734c655 < "time": 1 --- > "time": {"value": 1} 742,743c663,664 < "position": "spawn", < "tolerance": 2 --- > "position": {"key": "spawn"}, > "tolerance": {"value": 2} 751c672 < "time": 1 --- > "time": {"value": 1} 756c677 < } \ No newline at end of file --- > } behaviors\monsters\boss\guardian\floorprojectiles.behavior 26,31c26 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 38,39c33,34 < "addend": 0.5, < "number": "" --- > "addend": {"value": 0.5}, > "number": {"key": ""} 50,51c45,46 < "addend": "windup", < "number": "" --- > "addend": {"key": "windup"}, > "number": {"key": ""} 62,63c57,58 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 71,73c66,68 < "type": "righthand", < "state": "open", < "fallback": "close" --- > "fallback": {"value": "close"}, > "state": {"value": "open"}, > "type": {"value": "righthand"} 80,85c75 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 92,93c82,83 < "sound": "groundHazardWindup", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "groundHazardWindup"} 101c91 < "time": 0.5 --- > "time": {"value": 0.5} 109,110c99,100 < "sound": "groundHazardStart", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "groundHazardStart"} 118,119c108,109 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 127c117 < "sound": "groundHazardLoop" --- > "sound": {"value": "groundHazardLoop"} 135c125 < "time": "duration" --- > "time": {"key": "duration"} 145,146c135,136 < "sound": "groundHazardWinddown", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "groundHazardWinddown"} 161,166c151 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 173,174c158,159 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 182c167 < "time": 0.5 --- > "time": {"value": 0.5} 190,191c175,176 < "handPart": "righthand", < "angle": -1.57 --- > "angle": {"value": -1.57}, > "handPart": {"value": "righthand"} 201,202c186,187 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 210,214c195,199 < "handPart": "righthand", < "angle": -1.57, < "maxLength": 50, < "duration": "duration", < "power": 10 --- > "angle": {"value": -1.57}, > "duration": {"key": "duration"}, > "handPart": {"value": "righthand"}, > "maxLength": {"value": 50}, > "power": {"value": 10} 221,226c206 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 233c213 < "time": "windup" --- > "time": {"key": "windup"} 241,248c221,228 < "areaWidth": "", < "center": "
", < "power": "", < "projectileCount": "", < "projectileType": "", < "segmentWidth": "", < "spawnHeight": "", < "timeToLive": "" --- > "areaWidth": {"key": ""}, > "center": {"key": "
"}, > "power": {"key": ""}, > "projectileCount": {"key": ""}, > "projectileType": {"value": ""}, > "segmentWidth": {"key": ""}, > "spawnHeight": {"key": ""}, > "timeToLive": {"key": ""} 273,274c253,254 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 282c262 < "time": 0.6 --- > "time": {"value": 0.6} 290,291c270,271 < "handPart": "righthand", < "angle": -1.57 --- > "angle": {"value": -1.57}, > "handPart": {"value": "righthand"} 298c278 < } \ No newline at end of file --- > } behaviors\monsters\boss\guardian\guardian.behavior 25,30c25 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 37c32 < "type": "None" --- > "type": {"value": "None"} 45c40 < "aggressive": true --- > "aggressive": {"value": true} 53c48 < "number": 0 --- > "number": {"value": 0} 64c59 < "direction": 1 --- > "direction": {"value": 1} 72c67 < "shouldDie": false --- > "shouldDie": {"value": false} 90,95c85 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 107,108c97,98 < "list": "allMinions", < "type": "entity" --- > "list": {"key": "allMinions"}, > "type": {"value": "entity"} 115c105 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 125c115 < "type": "newMinion" --- > "type": {"value": "newMinion"} 136c126,129 < "entity": "newMinion", --- > "entity": {"key": "newMinion"}, > "list": {"key": "allMinions"} > }, > "output": { 148,149c141,142 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 157,158c150,151 < "percentage": 0, < "resource": "health" --- > "percentage": {"value": 0}, > "resource": {"value": "health"} 166,167c159,160 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 175,180c168,173 < "targetQueryRange": 200, < "keepTargetInRange": 200, < "keepTargetInSight": true, < "queryTargets": true, < "targetOnDamage": true, < "targetOutOfSightTime": 0.1 --- > "targetQueryRange": {"value": 200}, > "keepTargetInRange": {"value": 200}, > "keepTargetInSight": {"value": true}, > "queryTargets": {"value": true}, > "targetOnDamage": {"value": true}, > "targetOutOfSightTime": {"value": 0.1} 193,198c186 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 205c193 < "time": 0.5 --- > "time": {"value": 0.5} 213c201 < "type": "Special" --- > "type": {"value": "Special"} 221c209 < "enable": true --- > "enable": {"value": true} 229c217 < "time": 1 --- > "time": {"value": 1} 237,238c225,226 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 250,251c238,239 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 259c247 < "entity": "target" --- > "entity": {"key": "target"} 267,268c255,256 < "actions": "", < "dynamic": true --- > "actions": {"key": ""}, > "dynamic": {"value": true} 290,295c278 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 302,303c285,286 < "list": "newMinions", < "type": "entity" --- > "list": {"key": "newMinions"}, > "type": {"value": "entity"} 310,311c293,294 < "entity": "eachItem", < "message": "despawn" --- > "entity": {"key": "eachItem"}, > "message": {"value": "despawn"} 320,321c303,304 < "list": "allMinions", < "type": "entity" --- > "list": {"key": "allMinions"}, > "type": {"value": "entity"} 328,329c311,312 < "entity": "eachItem", < "message": "despawn" --- > "entity": {"key": "eachItem"}, > "message": {"value": "despawn"} 341,342c324,325 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 350,351c333,334 < "percentage": 0, < "resource": "health" --- > "percentage": {"value": 0}, > "resource": {"value": "health"} 358,363c341 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 370,371c348,349 < "position": "spawn", < "tolerance": 1 --- > "position": {"key": "spawn"}, > "tolerance": {"value": 1} 379c357 < "type": "None" --- > "type": {"value": "None"} 387c365 < "enable": false --- > "enable": {"value": false} 395,396c373,374 < "percentage": 1, < "resource": "health" --- > "percentage": {"value": 1}, > "resource": {"value": "health"} 404,407c382 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 424,429c399 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 436c406 < "time": 0.5 --- > "time": {"value": 0.5} 447c417 < "type": "None" --- > "type": {"value": "None"} 455c425 < "enable": false --- > "enable": {"value": false} 463,464c433,434 < "sound": "deathFade", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "deathFade"} 472c442 < "name": "guardiandeath" --- > "name": {"value": "guardiandeath"} 480,481c450,451 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 489c459 < "time": 6 --- > "time": {"value": 6} 499,504c469 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 511,513c476,478 < "max": 0.25, < "min": 0, < "ratio": "ratio" --- > "max": {"value": 0.25}, > "min": {"value": 0}, > "ratio": {"key": "ratio"} 524,525c489,490 < "max": "shake", < "min": 0 --- > "max": {"key": "shake"}, > "min": {"value": 0} 536,537c501,502 < "max": "shake", < "min": 0 --- > "max": {"key": "shake"}, > "min": {"value": 0} 548c513 < "transformationGroup": "all" --- > "transformationGroup": {"value": "all"} 556,560c521,522 < "offset": [ < "x", < "y" < ], < "transformationGroup": "all" --- > "offset": {"value": ["x", "y"]}, > "transformationGroup": {"value": "all"} 572,573c534,535 < "sound": "deathShrink", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "deathShrink"} 581,582c543,544 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 590c552 < "time": 0.1 --- > "time": {"value": 0.1} 600,605c562 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 612,614c569,571 < "max": 0.05, < "min": 1, < "ratio": "ratio" --- > "max": {"value": 0.05}, > "min": {"value": 1}, > "ratio": {"key": "ratio"} 625c582 < "transformationGroup": "all" --- > "transformationGroup": {"value": "all"} 633,634c590,591 < "transformationGroup": "all", < "scale": "scale" --- > "scale": {"value": ["scale", "scale"]}, > "transformationGroup": {"value": "all"} 646,657c603,610 < "angle": 0, < "offset": [ < 0, < 0 < ], < "position": "self", < "power": 0, < "projectileConfig": {}, < "projectileType": "guardiandeathexplosionspawner", < "scalePower": false, < "sourceEntity": "self", < "trackSource": false --- > "angle": {"value": 0}, > "offset": {"value": [0, 0]}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "guardiandeathexplosionspawner"}, > "scalePower": {"value": false}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 665c618 < "shouldDie": true --- > "shouldDie": {"value": true} 680c633 < } \ No newline at end of file --- > } behaviors\monsters\boss\guardian\guardiandash.behavior 2a3 > "description": "", 13,20c14,15 < "firstPosition": [ < 0, < 0 < ], < "secondPosition": [ < 0, < 0 < ], --- > "firstPosition": [0, 0], > "secondPosition": [0, 0], 28,33c23 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 45,50c35 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 57,61c42,43 < "offset": [ < 0, < 0 < ], < "position": "" --- > "offset": {"value": [0, 0]}, > "position": {"key": ""} 72,76c54,55 < "offset": [ < 0, < 0 < ], < "position": "" --- > "offset": {"value": [0, 0]}, > "position": {"key": ""} 88,93c67 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 100,104c74,75 < "offset": [ < 0, < 0 < ], < "position": "" --- > "offset": {"value": [0, 0]}, > "position": {"key": ""} 115,119c86,87 < "offset": [ < 0, < 0 < ], < "position": "" --- > "offset": {"value": [0, 0]}, > "position": {"key": ""} 134,135c102,103 < "position": "start", < "tolerance": 2 --- > "position": {"key": "start"}, > "tolerance": {"value": 2} 143c111 < "time": 0.5 --- > "time": {"value": 0.5} 151,152c119,120 < "from": "start", < "to": "end" --- > "from": {"key": "start"}, > "to": {"key": "end"} 163c131 < "direction": "dashDir" --- > "direction": {"key": "dashDir"} 174c142 < "direction": "dashDir" --- > "direction": {"key": "dashDir"} 182,186c150,151 < "first": [ < "dashDir", < 0 < ], < "second": "" --- > "first": {"value": ["dashDir", 0]}, > "number": {"key": ""} 197,198c162,163 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 211c176 < "transformationGroup": "all" --- > "transformationGroup": {"value": "all"} 220,227c185,189 < "angle": 0, < "offset": [ < 0, < 1.5 < ], < "windup": "", < "windupLength": 7, < "stabLength": 0 --- > "angle": {"value": 0}, > "offset": {"value": [0, 1.5]}, > "stabLength": {"value": 0}, > "windup": {"key": ""}, > "windupLength": {"value": 7} 234,239c196 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 246c203 < "time": 1 --- > "time": {"value": 1} 254,256c211,213 < "type": "swoosh", < "state": "active", < "fallback": "invisible" --- > "fallback": {"value": "invisible"}, > "state": {"value": "active"}, > "type": {"value": "swoosh"} 266,268c223,225 < "type": "body", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "body"} 276,278c233,235 < "type": "head", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "head"} 285,290c242 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 297,298c249,250 < "sound": "dashWindup", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "dashWindup"} 306c258 < "time": "" --- > "time": {"value": ""} 314,315c266,267 < "sound": "dashSwoosh", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "dashSwoosh"} 323c275 < "sound": "dashLoop" --- > "sound": {"value": "dashLoop"} 332,337c284 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 344c291 < "time": 1 --- > "time": {"value": 1} 352,353c299,300 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 361c308 < "velocity": "dashVelocity" --- > "velocity": {"key": "dashVelocity"} 369,372c316 < "dirVector": [ < "dashDir", < 0 < ] --- > "dirVector": {"value": ["dashDir", 0]} 382c326 < "emitter": "wallCollision" --- > "emitter": {"value": "wallCollision"} 390,391c334,335 < "sound": "wallCollision", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "wallCollision"} 403c347 < "time": 1 --- > "time": {"value": 1} 411,412c355,356 < "position": "spawn", < "tolerance": 2 --- > "position": {"key": "spawn"}, > "tolerance": {"value": 2} 420c364 < "time": 1 --- > "time": {"value": 1} 425c369 < } \ No newline at end of file --- > } behaviors\monsters\boss\guardian\guardiandebuff.behavior 2a3 > "description": "", 9,11c10 < "parameters": { < "actions": [] < }, --- > "parameters": {}, 16,21c15 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 28c22 < "type": "makeVulnerable" --- > "type": {"value": "makeVulnerable"} 36,37c30,31 < "content": "*error* defence matrix disrupted", < "tags": {} --- > "content": {"value": "*error* defence matrix disrupted"}, > "tags": {"value": {}} 45,46c39,40 < "name": "vulnerability", < "duration": 6 --- > "duration": {"value": 6}, > "name": {"value": "vulnerability"} 54c48 < "time": 5 --- > "time": {"value": 5} 62,63c56,57 < "content": "rebooting protective subystem beeewooop", < "tags": {} --- > "content": {"value": "rebooting protective subystem beeewooop"}, > "tags": {"value": {}} 71c65 < "time": 1 --- > "time": {"value": 1} behaviors\monsters\boss\guardian\guardianslam.behavior 25,30c25 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 37c32 < "number": "" --- > "number": {"key": ""} 53,58c48 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 65,66c55,56 < "entity": "self", < "target": "target" --- > "entity": {"key": "self"}, > "target": {"key": "target"} 77,80c67 < "dirVector": [ < "targetDir", < 0 < ] --- > "dirVector": {"value": ["targetDir", 0]} 90,91c77,78 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 98,103c85 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 110c92 < "entity": "target" --- > "entity": {"key": "target"} 121,122c103,104 < "from": "spawn", < "to": "targetPosition" --- > "from": {"key": "spawn"}, > "to": {"key": "targetPosition"} 133,137c115,116 < "offset": [ < "targetX", < "windupHeight" < ], < "position": "spawn" --- > "offset": {"value": ["targetX", "windupHeight"]}, > "position": {"key": "spawn"} 150,151c129,130 < "position": "windupPosition", < "tolerance": 2 --- > "position": {"key": "windupPosition"}, > "tolerance": {"value": 2} 163,164c142,143 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 172,174c151,153 < "type": "body", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "body"} 182,184c161,163 < "type": "head", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "head"} 191,196c170 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 203,204c177,178 < "sound": "dashWindup", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "dashWindup"} 212c186 < "time": "" --- > "time": {"value": ""} 220,221c194,195 < "sound": "dashSwoosh", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "dashSwoosh"} 229c203 < "sound": "dashLoop" --- > "sound": {"value": "dashLoop"} 238,243c212 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 250c219 < "time": "" --- > "time": {"value": ""} 258,260c227,229 < "type": "swoosh", < "state": "active", < "fallback": "invisible" --- > "fallback": {"value": "invisible"}, > "state": {"value": "active"}, > "type": {"value": "swoosh"} 269,274c238 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 281,282c245,246 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 289,294c253 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 301,302c260,261 < "entity": "self", < "target": "target" --- > "entity": {"key": "self"}, > "target": {"key": "target"} 314c273 < "direction": "targetDir" --- > "direction": {"key": "targetDir"} 322c281 < "vector": "toTarget" --- > "vector": {"key": "toTarget"} 335c294 < "time": "" --- > "time": {"value": ""} 345,349c304,305 < "vector": [ < 1, < 0 < ], < "angle": "targetAngle" --- > "angle": {"key": "targetAngle"}, > "vector": {"value": [1, 0]} 360,361c316,317 < "first": "toTarget", < "second": "" --- > "first": {"key": "toTarget"}, > "number": {"key": ""} 372,373c328,329 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 381c337 < "velocity": "slamVelocity" --- > "velocity": {"key": "slamVelocity"} 394,399c350 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 406,409c357 < "dirVector": [ < 0, < 1 < ] --- > "dirVector": {"value": [0, 1]} 417c365 < "emitter": "ceilingCollision" --- > "emitter": {"value": "ceilingCollision"} 425,426c373,374 < "sound": "ceilingCollision", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "ceilingCollision"} 435,440c383 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 447,450c390 < "dirVector": [ < 0, < -1 < ] --- > "dirVector": {"value": [0, -1]} 458c398 < "emitter": "groundCollision" --- > "emitter": {"value": "groundCollision"} 466,467c406,407 < "sound": "groundCollision", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "groundCollision"} 476,481c416 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 488,491c423 < "dirVector": [ < "targetDir", < 0 < ] --- > "dirVector": {"value": ["targetDir", 0]} 499c431 < "emitter": "wallCollision" --- > "emitter": {"value": "wallCollision"} 507,508c439,440 < "sound": "ceilingCollision", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "ceilingCollision"} 522,525c454 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 535,542c464,468 < "angle": "targetAngle", < "offset": [ < -2.5, < 1 < ], < "windup": "", < "windupLength": 5, < "stabLength": 3 --- > "angle": {"key": "targetAngle"}, > "offset": {"value": [-2.5, 1]}, > "stabLength": {"value": 3}, > "windup": {"key": ""}, > "windupLength": {"value": 5} 552c478 < "time": "" --- > "time": {"value": ""} 560,561c486,487 < "position": "spawn", < "tolerance": 2 --- > "position": {"key": "spawn"}, > "tolerance": {"value": 2} 566c492 < } \ No newline at end of file --- > } behaviors\monsters\boss\guardian\lowgroundbeam.behavior 13,21c13,14 < "leftPosition": [ < 0, < 0 < ], < "rightPosition": [ < 0, < 0 < ], < "power": 10, --- > "leftPosition": [0, 0], > "rightPosition": [0, 0], 23,26c16 < "startOffset": [ < 0, < 4 < ], --- > "startOffset": [0, 4], 33,38c23 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 50,55c35 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 62,66c42,43 < "offset": [ < 0, < 0 < ], < "position": "" --- > "offset": {"value": [0, 0]}, > "position": {"key": ""} 77,81c54,55 < "offset": [ < 0, < 0 < ], < "position": "" --- > "offset": {"value": [0, 0]}, > "position": {"key": ""} 93,98c67 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 105,109c74,75 < "offset": [ < 0, < 0 < ], < "position": "" --- > "offset": {"value": [0, 0]}, > "position": {"key": ""} 120,124c86,87 < "offset": [ < 0, < 0 < ], < "position": "" --- > "offset": {"value": [0, 0]}, > "position": {"key": ""} 139,140c102,103 < "position": "start", < "tolerance": 0.5 --- > "position": {"key": "start"}, > "tolerance": {"value": 0.5} 148c111 < "time": 0.5 --- > "time": {"value": 0.5} 156,157c119,120 < "from": "start", < "to": "end" --- > "from": {"key": "start"}, > "to": {"key": "end"} 168c131 < "direction": "beamDir" --- > "direction": {"key": "beamDir"} 179c142 < "direction": "beamDir" --- > "direction": {"key": "beamDir"} 187,190c150 < "vector": [ < "beamDir", < 0 < ] --- > "vector": {"value": ["beamDir", 0]} 201,202c161,162 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 210,212c170,172 < "type": "body", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "body"} 220,222c180,182 < "type": "righthand", < "state": "open", < "fallback": "close" --- > "fallback": {"value": "close"}, > "state": {"value": "open"}, > "type": {"value": "righthand"} 229,234c189 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 241,242c196,197 < "sound": "doubleBeamPrepare", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "doubleBeamPrepare"} 250,251c205,206 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 259c214 < "time": 1 --- > "time": {"value": 1} 270,272c225,227 < "angle": "beamAngle", < "handPart": "righthand", < "offset": "" --- > "angle": {"key": "beamAngle"}, > "handPart": {"value": "righthand"}, > "offset": {"key": ""} 282,283c237,238 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 291,293c246,248 < "type": "head", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "head"} 300,305c255 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 312,313c262,263 < "sound": "beamWindup", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "beamWindup"} 321c271 < "time": 0.5 --- > "time": {"value": 0.5} 329,330c279,280 < "sound": "beamStart", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "beamStart"} 338,339c288,289 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 347c297 < "sound": "beamLoop" --- > "sound": {"value": "beamLoop"} 355c305 < "time": "" --- > "time": {"value": ""} 365,366c315,316 < "sound": "beamWinddown", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "beamWinddown"} 381,386c331 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 393,394c338,339 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 402c347 < "time": 2 --- > "time": {"value": 2} 412,417c357 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 424,425c364,365 < "func": "sin", < "ratio": "ratio" --- > "func": {"value": "sin"}, > "ratio": {"key": "ratio"} 436,437c376,377 < "number": "", < "factor": "ratio" --- > "factor": {"key": "ratio"}, > "number": {"key": ""} 448,452c388,389 < "first": "", < "second": [ < 0, < "lowerOffset" < ] --- > "first": {"key": ""}, > "second": {"value": [0, "lowerOffset"]} 475,480c412,417 < "angle": "beamAngle", < "duration": "", < "handPart": "righthand", < "offset": "offset", < "power": 10, < "damagePart": "righthand" --- > "angle": {"key": "beamAngle"}, > "damagePart": {"value": "righthand"}, > "duration": {"key": ""}, > "handPart": {"value": "righthand"}, > "offset": {"key": "offset"}, > "power": {"value": 10} 494,495c431,432 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 503c440 < "time": 0.5 --- > "time": {"value": 0.5} 514,516c451,453 < "angle": "beamAngle", < "handPart": "righthand", < "offset": "offset" --- > "angle": {"key": "beamAngle"}, > "handPart": {"value": "righthand"}, > "offset": {"key": "offset"} 526c463 < "time": 1 --- > "time": {"value": 1} 534,535c471,472 < "position": "spawn", < "tolerance": 2 --- > "position": {"key": "spawn"}, > "tolerance": {"value": 2} 543c480 < "time": 1 --- > "time": {"value": 1} behaviors\monsters\boss\guardian\meleestab.behavior 19,24c19 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 31,32c26,27 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 40,42c35,37 < "type": "body", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "body"} 50,52c45,47 < "type": "head", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "head"} 59,64c54 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 71c61 < "time": "" --- > "time": {"value": ""} 79,81c69,71 < "type": "swoosh", < "state": "active", < "fallback": "invisible" --- > "fallback": {"value": "invisible"}, > "state": {"value": "active"}, > "type": {"value": "swoosh"} 90,95c80 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 102,103c87,88 < "sound": "stabWindup", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "stabWindup"} 111c96 < "time": "" --- > "time": {"value": ""} 119,120c104,105 < "sound": "stabSwoosh", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "stabSwoosh"} 128c113 < "sound": "stabLoop" --- > "sound": {"value": "stabLoop"} 137,142c122 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 149,150c129,130 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 158,159c138,139 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 167c147 < "entity": "target" --- > "entity": {"key": "target"} 178,180c158,160 < "position": "targetPosition", < "outerRange": 14, < "innerRange": 10 --- > "innerRange": {"value": 10}, > "outerRange": {"value": 14}, > "position": {"key": "targetPosition"} 187,192c167 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 199,200c174,175 < "entity": "self", < "target": "target" --- > "entity": {"key": "self"}, > "target": {"key": "target"} 212c187 < "direction": "targetDir" --- > "direction": {"key": "targetDir"} 220c195 < "vector": "toTarget" --- > "vector": {"key": "toTarget"} 241c216 < "time": "" --- > "time": {"value": ""} 251c226 < "time": 0.5 --- > "time": {"value": 0.5} 261,268c236,240 < "angle": "targetAngle", < "offset": [ < -2.5, < 1 < ], < "windup": "", < "windupLength": 6, < "stabLength": 7 --- > "angle": {"key": "targetAngle"}, > "offset": {"value": [-2.5, 1]}, > "stabLength": {"value": 7}, > "windup": {"key": ""}, > "windupLength": {"value": 6} 278c250 < "time": 0.25 --- > "time": {"value": 0.25} behaviors\monsters\boss\guardian\phasesequence.behavior 2a3 > "description": "", 14,15c15,16 < "actions": "", < "dynamic": false --- > "actions": {"key": ""}, > "dynamic": {"value": false} behaviors\monsters\boss\guardian\platformbumpers.behavior 2a3 > "description": "", 20,25c21 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 32,33c28,29 < "position": "spawn", < "tolerance": 1 --- > "position": {"key": "spawn"}, > "tolerance": {"value": 1} 41c37 < "list": "" --- > "list": {"key": ""} 52,53c48,49 < "list": "positions", < "type": "position" --- > "list": {"key": "positions"}, > "type": {"value": "position"} 66,67c62,63 < "position": "eachItem", < "tolerance": 0.5 --- > "position": {"key": "eachItem"}, > "tolerance": {"value": 0.5} 75,78c71 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 95c88 < "direction": "direction" --- > "direction": {"key": "direction"} 103,106c96 < "vector": [ < "direction", < 0 < ] --- > "vector": {"value": ["direction", 0]} 117,118c107,108 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 126,128c116,118 < "type": "righthand", < "state": "open", < "fallback": "close" --- > "fallback": {"value": "close"}, > "state": {"value": "open"}, > "type": {"value": "righthand"} 136,138c126,128 < "type": "head", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "head"} 146,148c136,138 < "type": "body", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "body"} 161,166c151,153 < "angle": "handAngle", < "handPart": "righthand", < "offset": [ < 0, < 0 < ] --- > "angle": {"key": "handAngle"}, > "handPart": {"value": "righthand"}, > "offset": {"value": [0, 0]} 181c168 < "time": 1 --- > "time": {"value": 1} 189,193c176,177 < "first": [ < "direction", < 0 < ], < "second": 5 --- > "first": {"value": ["direction", 0]}, > "second": {"value": [5, 5]} 204,205c188,189 < "offset": "direction", < "position": "self" --- > "offset": {"key": "direction"}, > "position": {"key": "self"} 216,224c200,208 < "aimPosition": "aimPosition", < "fixedDistance": false, < "fuzzAimPosition": 0, < "fuzzAngle": 0, < "handPart": "righthand", < "projectileCount": 1, < "projectileParameters": {}, < "projectileType": "", < "fuzzSpeed": 0 --- > "aimPosition": {"key": "aimPosition"}, > "fixedDistance": {"value": false}, > "fuzzAimPosition": {"value": 0}, > "fuzzAngle": {"value": 0}, > "fuzzSpeed": {"value": 0}, > "handPart": {"value": "righthand"}, > "projectileCount": {"value": 1}, > "projectileParameters": {"value": {}}, > "projectileType": {"value": ""} 232,233c216,217 < "sound": "singleFire", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "singleFire"} 241c225 < "time": 0.5 --- > "time": {"value": 0.5} 253c237 < } \ No newline at end of file --- > } behaviors\monsters\boss\guardian\pogobeam.behavior 2a3 > "description": "", 13,25c14,16 < "firstPosition": [ < 0, < 0 < ], < "secondPosition": [ < 0, < 0 < ], < "dashSpeed": 25, < "bounceVelocity": [ < 25, < 60 < ], --- > "firstPosition": [0, 0], > "secondPosition": [0, 0], > "bounceVelocity": [25, 60], 32,37c23 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 49,54c35 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 61,65c42,43 < "offset": [ < 0, < 0 < ], < "position": "" --- > "offset": {"value": [0, 0]}, > "position": {"key": ""} 76,80c54,55 < "offset": [ < 0, < 0 < ], < "position": "" --- > "offset": {"value": [0, 0]}, > "position": {"key": ""} 92,97c67 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 104,108c74,75 < "offset": [ < 0, < 0 < ], < "position": "" --- > "offset": {"value": [0, 0]}, > "position": {"key": ""} 119,123c86,87 < "offset": [ < 0, < 0 < ], < "position": "" --- > "offset": {"value": [0, 0]}, > "position": {"key": ""} 138,139c102,103 < "position": "start", < "tolerance": 2 --- > "position": {"key": "start"}, > "tolerance": {"value": 2} 147c111 < "time": 0.5 --- > "time": {"value": 0.5} 155,156c119,120 < "from": "start", < "to": "end" --- > "from": {"key": "start"}, > "to": {"key": "end"} 167c131 < "direction": "dashDir" --- > "direction": {"key": "dashDir"} 178c142 < "direction": "dashDir" --- > "direction": {"key": "dashDir"} 186,187c150,151 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 195,197c159,161 < "type": "body", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "body"} 205,207c169,171 < "type": "head", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "head"} 214,219c178 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 226,227c185,186 < "sound": "beamWindup", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "beamWindup"} 235c194 < "time": 0.5 --- > "time": {"value": 0.5} 243,244c202,203 < "sound": "beamStart", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "beamStart"} 252,253c211,212 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 261c220 < "sound": "beamLoop" --- > "sound": {"value": "beamLoop"} 269c228 < "time": "" --- > "time": {"value": ""} 279,280c238,239 < "sound": "beamWinddown", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "beamWinddown"} 296,297c255,256 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 305,308c264 < "parameters": { < "airFriction": 0, < "gravityEnabled": true < } --- > "parameters": {"value": {"airFriction": 0, "gravityEnabled": true}} 320,325c276 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 332,335c283 < "dirVector": [ < "dashDir", < 0 < ] --- > "dirVector": {"value": ["dashDir", 0]} 343,344c291,292 < "number": "dashDir", < "factor": -1 --- > "factor": {"value": -1}, > "number": {"key": "dashDir"} 355c303 < "direction": "dashDir" --- > "direction": {"key": "dashDir"} 365,370c313 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 377c320 < "time": 0.5 --- > "time": {"value": 0.5} 385,386c328,329 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 392,397c335 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 404,408c342,343 < "first": "", < "second": [ < "dashDir", < 1 < ] --- > "first": {"key": ""}, > "second": {"value": ["dashDir", 1]} 419c354 < "velocity": "bounceVelocity" --- > "velocity": {"key": "bounceVelocity"} 427c362 < "time": 0.1 --- > "time": {"value": 0.1} 440,445c375 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 452,455c382 < "dirVector": [ < 0, < -1 < ] --- > "dirVector": {"value": [0, -1]} 463c390 < "emitter": "groundCollision" --- > "emitter": {"value": "groundCollision"} 471,472c398,399 < "sound": "groundBounce", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "groundBounce"} 480,483c407 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 491c415 < "time": 0.05 --- > "time": {"value": 0.05} 512c436 < "time": 0.5 --- > "time": {"value": 0.5} 524,530c448,454 < "angle": -1.57, < "duration": "", < "handPart": "righthand", < "power": 10, < "damagePart": "righthand", < "beamType": "damage", < "bounces": 0 --- > "angle": {"value": -1.57}, > "beamType": {"value": "damage"}, > "bounces": {"value": 0}, > "damagePart": {"value": "righthand"}, > "duration": {"key": ""}, > "handPart": {"value": "righthand"}, > "power": {"value": 10} 540c464 < "time": 1 --- > "time": {"value": 1} 548,549c472,473 < "position": "spawn", < "tolerance": 2 --- > "position": {"key": "spawn"}, > "tolerance": {"value": 2} 557c481 < "time": 1 --- > "time": {"value": 1} behaviors\monsters\boss\guardian\projectilecircle.behavior 2a3 > "description": "", 17d17 < "repeatCount": 5, 30,35c30 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 38,40c33,35 < "title": "sub", < "type": "action", < "name": "sub", --- > "title": "logResult", > "type": "decorator", > "name": "logResult", 42,43c37 < "first": "", < "second": 2 --- > "text": {"value": "Log result: %s"} 45,46c39,49 < "output": { < "result": "approachOuter" --- > "child": { > "title": "sub", > "type": "action", > "name": "sub", > "parameters": { > "first": {"key": ""}, > "second": {"value": 2} > }, > "output": { > "result": "approachOuter" > } 54,55c57,58 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 63,65c66,68 < "type": "righthand", < "state": "open", < "fallback": "close" --- > "fallback": {"value": "close"}, > "state": {"value": "open"}, > "type": {"value": "righthand"} 73,75c76,78 < "type": "lefthand", < "state": "open", < "fallback": "close" --- > "fallback": {"value": "close"}, > "state": {"value": "open"}, > "type": {"value": "lefthand"} 82,87c85 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 94,95c92,93 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 103c101 < "entity": "target" --- > "entity": {"key": "target"} 114,116c112,114 < "position": "targetPosition", < "outerRange": "approachOuter", < "innerRange": "" --- > "innerRange": {"key": ""}, > "outerRange": {"key": "approachOuter"}, > "position": {"key": "targetPosition"} 123,128c121 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 135,136c128,129 < "entity": "self", < "target": "target" --- > "entity": {"key": "self"}, > "target": {"key": "target"} 148c141 < "direction": "targetDir" --- > "direction": {"key": "targetDir"} 156c149 < "vector": "toTarget" --- > "vector": {"key": "toTarget"} 167,172c160,162 < "angle": "targetAngle", < "handPart": "righthand", < "offset": [ < 0, < 0 < ] --- > "angle": {"key": "targetAngle"}, > "handPart": {"value": "righthand"}, > "offset": {"value": [0, 0]} 180,185c170,172 < "angle": "targetAngle", < "handPart": "lefthand", < "offset": [ < 0, < 0 < ] --- > "angle": {"key": "targetAngle"}, > "handPart": {"value": "lefthand"}, > "offset": {"value": [0, 0]} 197c184 < "number": "targetAngle" --- > "number": {"key": "targetAngle"} 208c195 < "number": "targetAngle" --- > "number": {"key": "targetAngle"} 219c206 < "number": "" --- > "number": {"key": ""} 230,231c217,218 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 239,241c226,228 < "type": "body", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "body"} 249,251c236,238 < "type": "head", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "head"} 259,260c246,247 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 267,272c254 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 279,284c261,263 < "angle": "rightAimAngle", < "handPart": "righthand", < "offset": [ < 0, < 0 < ] --- > "angle": {"key": "rightAimAngle"}, > "handPart": {"value": "righthand"}, > "offset": {"value": [0, 0]} 292,297c271,273 < "angle": "leftAimAngle", < "handPart": "lefthand", < "offset": [ < 0, < 0 < ] --- > "angle": {"key": "leftAimAngle"}, > "handPart": {"value": "lefthand"}, > "offset": {"value": [0, 0]} 306,311c282 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 318,319c289,290 < "sound": "fireWindup", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "fireWindup"} 327c298 < "time": "" --- > "time": {"value": ""} 335,336c306,307 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 344,345c315,316 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 353c324 < "time": "" --- > "time": {"value": ""} 363,368c334 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 375,377c341,343 < "max": 3.14, < "min": 0, < "ratio": "ratio" --- > "max": {"value": 3.14}, > "min": {"value": 0}, > "ratio": {"key": "ratio"} 388,389c354,355 < "addend": "targetAngle", < "number": "angleOffset" --- > "addend": {"key": "targetAngle"}, > "number": {"key": "angleOffset"} 400,401c366,367 < "first": "targetAngle", < "second": "angleOffset" --- > "first": {"key": "targetAngle"}, > "second": {"key": "angleOffset"} 416,417c382,383 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 423,428c389 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 434,439c395 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 446,450c402,403 < "vector": [ < "distance", < 0 < ], < "angle": "rightAimAngle" --- > "angle": {"key": "rightAimAngle"}, > "vector": {"value": ["distance", 0]} 461,462c414,415 < "offset": "rightAimOffset", < "position": "self" --- > "offset": {"key": "rightAimOffset"}, > "position": {"key": "self"} 473,481c426,434 < "aimPosition": "rightAimPosition", < "fixedDistance": true, < "fuzzAimPosition": "", < "fuzzAngle": 0, < "handPart": "righthand", < "projectileCount": "", < "projectileParameters": "", < "projectileType": "", < "fuzzSpeed": 0 --- > "aimPosition": {"key": "rightAimPosition"}, > "fixedDistance": {"value": true}, > "fuzzAimPosition": {"key": ""}, > "fuzzAngle": {"value": 0}, > "fuzzSpeed": {"value": 0}, > "handPart": {"value": "righthand"}, > "projectileCount": {"key": ""}, > "projectileParameters": {"key": ""}, > "projectileType": {"value": ""} 489,493c442,443 < "vector": [ < "distance", < 0 < ], < "angle": "leftAimAngle" --- > "angle": {"key": "leftAimAngle"}, > "vector": {"value": ["distance", 0]} 504,505c454,455 < "offset": "leftAimOffset", < "position": "self" --- > "offset": {"key": "leftAimOffset"}, > "position": {"key": "self"} 516,524c466,474 < "aimPosition": "leftAimPosition", < "fixedDistance": true, < "fuzzAimPosition": "", < "fuzzAngle": 0, < "handPart": "lefthand", < "projectileCount": "", < "projectileParameters": "", < "projectileType": "", < "fuzzSpeed": 0 --- > "aimPosition": {"key": "leftAimPosition"}, > "fixedDistance": {"value": true}, > "fuzzAimPosition": {"key": ""}, > "fuzzAngle": {"value": 0}, > "fuzzSpeed": {"value": 0}, > "handPart": {"value": "lefthand"}, > "projectileCount": {"key": ""}, > "projectileParameters": {"key": ""}, > "projectileType": {"value": ""} 534,535c484,485 < "sound": "rapidFire", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "rapidFire"} 543c493 < "time": "" --- > "time": {"value": ""} 562c512 < "time": 1 --- > "time": {"value": 1} behaviors\monsters\boss\guardian\spawnminiongroup.behavior 28,33c28 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 39,44c34 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 56,57c46,47 < "list": "", < "type": "entity" --- > "list": {"value": ""}, > "type": {"value": "entity"} 64c54 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 79,80c69,70 < "list": "allMinions", < "type": "entity" --- > "list": {"value": "allMinions"}, > "type": {"value": "entity"} 87c77 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 99,100c89,90 < "position": "spawn", < "tolerance": 1 --- > "position": {"key": "spawn"}, > "tolerance": {"value": 1} 119c109 < "list": "" --- > "list": {"key": ""} 132,137c122 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 144,145c129,130 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 153,155c138,140 < "type": "body", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "body"} 163,165c148,150 < "type": "head", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "head"} 173c158 < "time": 1 --- > "time": {"value": 1} 183c168 < "time": 1 --- > "time": {"value": 1} 196,199c181 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 207,208c189,190 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 216,218c198,200 < "type": "body", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "body"} 226,228c208,210 < "type": "head", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "head"} 236,238c218,220 < "type": "righthand", < "state": "open", < "fallback": "close" --- > "fallback": {"value": "close"}, > "state": {"value": "open"}, > "type": {"value": "righthand"} 245,250c227 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 257c234 < "time": 0.5 --- > "time": {"value": 0.5} 265,267c242,244 < "minions": "", < "spawnMax": "", < "spawnMin": "" --- > "minions": {"key": ""}, > "spawnMax": {"key": ""}, > "spawnMin": {"key": ""} 278,279c255,256 < "list": "newMinions", < "type": "entity" --- > "list": {"value": "newMinions"}, > "type": {"value": "entity"} 285,290c262 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 297c269,272 < "entity": "eachItem", --- > "entity": {"key": "eachItem"}, > "list": {"key": ""} > }, > "output": { 306c281,284 < "entity": "eachItem", --- > "entity": {"key": "eachItem"}, > "list": {"key": "allMinions"} > }, > "output": { 317c295,296 < "parameters": { --- > "parameters": {}, > "output": { 326c305 < "time": 0.6 --- > "time": {"value": 0.6} 338c317 < "time": 0.5 --- > "time": {"value": 0.5} behaviors\monsters\boss\guardian\targetedbeam.behavior 2a3 > "description": "", 26,31c27 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 38,39c34,35 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 47,49c43,45 < "type": "", < "state": "open", < "fallback": "close" --- > "fallback": {"value": "close"}, > "state": {"value": "open"}, > "type": {"value": ""} 57,59c53,55 < "type": "body", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "body"} 66,71c62 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 78,79c69,70 < "sound": "beamPrepare", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "beamPrepare"} 87,88c78,79 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 96c87 < "time": "" --- > "time": {"value": ""} 103,108c94 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 115,116c101,102 < "entity": "self", < "target": "target" --- > "entity": {"key": "self"}, > "target": {"key": "target"} 127c113 < "direction": "targetDir" --- > "direction": {"key": "targetDir"} 136,141c122 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 148c129 < "entity": "target" --- > "entity": {"key": "target"} 159,160c140,141 < "from": "self", < "to": "targetPosition" --- > "from": {"key": "self"}, > "to": {"key": "targetPosition"} 172c153 < "vector": "toTarget" --- > "vector": {"key": "toTarget"} 183,184c164,165 < "handPart": "righthand", < "angle": "aimAngle" --- > "angle": {"key": "aimAngle"}, > "handPart": {"value": "righthand"} 200,205c181 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 217c193 < "shouldRun": "" --- > "shouldRun": {"key": ""} 232,233c208,209 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 241c217 < "time": 0.1 --- > "time": {"value": 0.1} 249,250c225,226 < "handPart": "righthand", < "angle": "aimAngle" --- > "angle": {"key": "aimAngle"}, > "handPart": {"value": "righthand"} 263,264c239,240 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 272,274c248,250 < "type": "head", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "head"} 281,286c257 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 293,294c264,265 < "sound": "beamWindup", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "beamWindup"} 302c273 < "time": 0.5 --- > "time": {"value": 0.5} 310,311c281,282 < "sound": "beamStart", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "beamStart"} 319,320c290,291 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 328c299 < "sound": "beamLoop" --- > "sound": {"value": "beamLoop"} 336c307 < "time": "" --- > "time": {"value": ""} 346,347c317,318 < "sound": "beamWinddown", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "beamWinddown"} 363,364c334,335 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 377c348 < "shouldRun": "" --- > "shouldRun": {"key": ""} 384c355 < "entity": "target" --- > "entity": {"key": "target"} 397,407c368,374 < "angularSpeed": "", < "duration": "", < "frames": 4, < "handPart": "righthand", < "maxLength": 80, < "targetPosition": "targetPosition", < "winddown": 0.5, < "windup": 0.5, < "damagePart": "", < "beamType": "", < "bounces": "" --- > "angularSpeed": {"key": ""}, > "beamType": {"value": ""}, > "bounces": {"key": ""}, > "damagePart": {"value": ""}, > "duration": {"key": ""}, > "handPart": {"value": "righthand"}, > "targetPosition": {"key": "targetPosition"} 426,427c393,394 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 435,436c402,403 < "handPart": "righthand", < "angle": "aimAngle" --- > "angle": {"key": "aimAngle"}, > "handPart": {"value": "righthand"} 444c411 < "time": 0.6 --- > "time": {"value": 0.6} behaviors\monsters\boss\guardian\targeteddash.behavior 2a3 > "description": "", 21,26c22 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 33,34c29,30 < "maxLoops": "", < "untilSuccess": false --- > "maxLoops": {"key": ""}, > "untilSuccess": {"value": false} 41,42c37,38 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 50,52c46,48 < "type": "body", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "body"} 60,62c56,58 < "type": "head", < "state": "activate", < "fallback": "deactivate" --- > "fallback": {"value": "deactivate"}, > "state": {"value": "activate"}, > "type": {"value": "head"} 69,74c65 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 81c72 < "time": "" --- > "time": {"value": ""} 89,91c80,82 < "type": "swoosh", < "state": "active", < "fallback": "invisible" --- > "fallback": {"value": "invisible"}, > "state": {"value": "active"}, > "type": {"value": "swoosh"} 100,105c91 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 112,113c98,99 < "sound": "quickDashWindup", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "quickDashWindup"} 121c107 < "time": "" --- > "time": {"value": ""} 129,130c115,116 < "sound": "quickDashSwoosh", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "quickDashSwoosh"} 138c124 < "sound": "quickDashLoop" --- > "sound": {"value": "quickDashLoop"} 147,152c133 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 159,160c140,141 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 167,172c148 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 179,180c155,156 < "entity": "self", < "target": "target" --- > "entity": {"key": "self"}, > "target": {"key": "target"} 192c168 < "direction": "targetDir" --- > "direction": {"key": "targetDir"} 200c176 < "vector": "toTarget" --- > "vector": {"key": "toTarget"} 213c189 < "time": "" --- > "time": {"value": ""} 223,224c199,200 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 232c208 < "parameters": "" --- > "parameters": {"key": ""} 239,244c215 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 251,255c222,223 < "vector": [ < 1, < 0 < ], < "angle": "targetAngle" --- > "angle": {"key": "targetAngle"}, > "vector": {"value": [1, 0]} 266,267c234,235 < "first": "toTarget", < "second": "" --- > "first": {"key": "toTarget"}, > "number": {"key": ""} 278c246 < "velocity": "dashVelocity" --- > "velocity": {"key": "dashVelocity"} 286c254 < "time": "" --- > "time": {"value": ""} 300,307c268,272 < "angle": "targetAngle", < "offset": [ < -2.5, < 1 < ], < "windup": "", < "windupLength": 5, < "stabLength": 3 --- > "angle": {"key": "targetAngle"}, > "offset": {"value": [-2.5, 1]}, > "stabLength": {"value": 3}, > "windup": {"key": ""}, > "windupLength": {"value": 5} 318c283 < "time": 1 --- > "time": {"value": 1} 323c288 < } \ No newline at end of file --- > } behaviors\monsters\boss\guardian\targetedprojectile.behavior 2a3 > "description": "", 35,40c36 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 47,48c43,44 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 56,58c52,54 < "type": "", < "state": "open", < "fallback": "close" --- > "fallback": {"value": "close"}, > "state": {"value": "open"}, > "type": {"value": ""} 65,70c61 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 77,78c68,69 < "sound": "fireWindup", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": "fireWindup"} 86,87c77,78 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 95c86 < "time": "" --- > "time": {"value": ""} 102,107c93 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 114,115c100,101 < "entity": "self", < "target": "target" --- > "entity": {"key": "self"}, > "target": {"key": "target"} 126c112 < "direction": "targetDir" --- > "direction": {"key": "targetDir"} 133,138c119 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 145c126 < "entity": "target" --- > "entity": {"key": "target"} 156,157c137,138 < "from": "self", < "to": "targetPosition" --- > "from": {"key": "self"}, > "to": {"key": "targetPosition"} 169c150 < "vector": "toTarget" --- > "vector": {"key": "toTarget"} 180,181c161,162 < "handPart": "righthand", < "angle": "aimAngle" --- > "angle": {"key": "aimAngle"}, > "handPart": {"value": "righthand"} 195,196c176,177 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 209c190 < "shouldRun": "" --- > "shouldRun": {"key": ""} 215,220c196 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 227c203 < "entity": "target" --- > "entity": {"key": "target"} 238,239c214,215 < "from": "self", < "to": "targetPosition" --- > "from": {"key": "self"}, > "to": {"key": "targetPosition"} 251c227 < "vector": "toTarget" --- > "vector": {"key": "toTarget"} 266,267c242,243 < "handPart": "righthand", < "angle": "aimAngle" --- > "angle": {"key": "aimAngle"}, > "handPart": {"value": "righthand"} 275c251 < "time": "" --- > "time": {"value": ""} 285,286c261,262 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 294,295c270,271 < "handPart": "righthand", < "angle": "aimAngle" --- > "angle": {"key": "aimAngle"}, > "handPart": {"value": "righthand"} 303,304c279,280 < "maxLoops": "", < "untilSuccess": false --- > "maxLoops": {"key": ""}, > "untilSuccess": {"value": false} 310,315c286 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 322,323c293,294 < "maxLoops": "", < "untilSuccess": false --- > "maxLoops": {"key": ""}, > "untilSuccess": {"value": false} 329,334c300 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 341,349c307,315 < "aimPosition": "targetPosition", < "fixedDistance": "", < "fuzzAimPosition": "", < "fuzzAngle": "", < "handPart": "", < "projectileCount": "", < "projectileParameters": "", < "projectileType": "", < "fuzzSpeed": "" --- > "aimPosition": {"key": "targetPosition"}, > "fixedDistance": {"key": ""}, > "fuzzAimPosition": {"key": ""}, > "fuzzAngle": {"key": ""}, > "fuzzSpeed": {"key": ""}, > "handPart": {"value": ""}, > "projectileCount": {"key": ""}, > "projectileParameters": {"key": ""}, > "projectileType": {"value": ""} 357,358c323,324 < "sound": "", < "loops": 0 --- > "loops": {"value": 0}, > "sound": {"value": ""} 366,367c332,333 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 375c341 < "time": "" --- > "time": {"value": ""} 388c354 < "shouldRun": "" --- > "shouldRun": {"key": ""} 394,399c360 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 406c367 < "entity": "target" --- > "entity": {"key": "target"} 417,418c378,379 < "from": "self", < "to": "targetPosition" --- > "from": {"key": "self"}, > "to": {"key": "targetPosition"} 430c391 < "vector": "toTarget" --- > "vector": {"key": "toTarget"} 450,451c411,412 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 459c420 < "time": "" --- > "time": {"value": ""} 472c433 < "shouldRun": "" --- > "shouldRun": {"key": ""} 478,483c439 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 490c446 < "entity": "target" --- > "entity": {"key": "target"} 501,502c457,458 < "from": "self", < "to": "targetPosition" --- > "from": {"key": "self"}, > "to": {"key": "targetPosition"} 514c470 < "vector": "toTarget" --- > "vector": {"key": "toTarget"} 540,541c496,497 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 549,550c505,506 < "handPart": "righthand", < "angle": "aimAngle" --- > "angle": {"key": "aimAngle"}, > "handPart": {"value": "righthand"} 558c514 < "time": 0.6 --- > "time": {"value": 0.6} behaviors\monsters\boss\kluexboss\changecolor.behavior 2a3 > "description": "", 4d4 < "/scripts/actions/monster.lua", 6,7d5 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 19,24c17 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 31,32c24,25 < "state": "colorwindup", < "type": "body" --- > "state": {"value": "colorwindup"}, > "type": {"value": "body"} 40c33 < "time": "" --- > "time": {"value": ""} 48,49c41,42 < "type": "colorState", < "tag": "" --- > "tag": {"value": ""}, > "type": {"value": "colorState"} 57,58c50,51 < "state": "colorwinddown", < "type": "body" --- > "state": {"value": "colorwinddown"}, > "type": {"value": "body"} 66c59 < "time": "" --- > "time": {"value": ""} behaviors\monsters\boss\kluexboss\fireattack.behavior 8d7 < "/scripts/actions/monster.lua", 10,11c9 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", --- > "/scripts/actions/boss/kluexboss.lua", 15,18c13 < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/boss/kluexboss.lua" --- > "/scripts/actions/world.lua" 30,35c25 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 42c32 < "color": "yellow" --- > "color": {"value": "yellow"} 50,52c40,42 < "position": "spawn", < "x": 0, < "y": "" --- > "position": {"key": "spawn"}, > "x": {"value": 0}, > "y": {"key": ""} 63,64c53,54 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 72,74c62,64 < "position": "fireStartPosition", < "tolerance": 1, < "speed": 20 --- > "position": {"key": "fireStartPosition"}, > "speed": {"value": 20}, > "tolerance": {"value": 1} 82c72 < "time": 1.2 --- > "time": {"value": 1.2} 92,95c82 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 102,107c89 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 114,115c96,97 < "state": "attack", < "type": "body" --- > "state": {"value": "attack"}, > "type": {"value": "body"} 123c105 < "time": "" --- > "time": {"value": ""} 131,134c113,116 < "areaWidth": 56, < "center": "spawn", < "pillarCount": "", < "pillarHeight": 8 --- > "areaWidth": {"value": 56}, > "center": {"key": "spawn"}, > "pillarCount": {"key": ""}, > "pillarHeight": {"value": 8} 145c127 < "time": "" --- > "time": {"value": ""} 155c137 < "time": 2.4 --- > "time": {"value": 2.4} 163c145 < "list": "pillars" --- > "list": {"key": "pillars"} 174,175c156,157 < "first": "", < "second": 1 --- > "first": {"key": ""}, > "second": {"value": 1} 191,192c173,174 < "maxLoops": "attackCount", < "untilSuccess": false --- > "maxLoops": {"key": "attackCount"}, > "untilSuccess": {"value": false} 198,203c180 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 210c187 < "list": "pillars" --- > "list": {"key": "pillars"} 212a190 > "list": "pillars", 221c199 < "entity": "attackPillar" --- > "entity": {"key": "attackPillar"} 232,234c210,212 < "position": "pillarPosition", < "x": 0, < "y": "" --- > "position": {"key": "pillarPosition"}, > "x": {"value": 0}, > "y": {"key": ""} 245,247c223,225 < "position": "pillarPosition", < "x": 0, < "y": "" --- > "position": {"key": "pillarPosition"}, > "x": {"value": 0}, > "y": {"key": ""} 263,264c241,242 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 272,274c250,252 < "cooldown": 1.5, < "onFail": false, < "onSuccess": true --- > "cooldown": {"value": 1.5}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 280,285c258 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 292,294c265,267 < "position": "startPosition", < "tolerance": 1, < "speed": 40 --- > "position": {"key": "startPosition"}, > "speed": {"value": 40}, > "tolerance": {"value": 1} 302,305c275 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 313,315c283,285 < "position": "attackPosition", < "tolerance": 1, < "speed": 12 --- > "position": {"key": "attackPosition"}, > "speed": {"value": 12}, > "tolerance": {"value": 1} 323,326c293 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 342c309 < "time": 1.2 --- > "time": {"value": 1.2} 354,355c321,322 < "state": "windup", < "type": "lava" --- > "state": {"value": "windup"}, > "type": {"value": "lava"} 363,364c330,331 < "state": "attack", < "type": "body" --- > "state": {"value": "attack"}, > "type": {"value": "body"} 372c339 < "time": 0.8 --- > "time": {"value": 0.8} 385,387c352,354 < "cooldown": 30, < "onFail": false, < "onSuccess": true --- > "cooldown": {"value": 30}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 394,400c361,367 < "areaWidth": 64, < "center": "spawn", < "power": 10, < "projectileCount": 8, < "projectileType": "floorlava", < "segmentWidth": 8, < "spawnHeight": -1 --- > "areaWidth": {"value": 64}, > "center": {"key": "spawn"}, > "power": {"value": 10}, > "projectileCount": {"value": 8}, > "projectileType": {"value": "floorlava"}, > "segmentWidth": {"value": 8}, > "spawnHeight": {"value": -1} 413c380 < "time": 1.6 --- > "time": {"value": 1.6} 421,422c388,389 < "entity": "attackPillar", < "message": "destroy" --- > "entity": {"key": "attackPillar"}, > "message": {"value": "destroy"} 430,431c397,398 < "state": "winddown", < "type": "lava" --- > "state": {"value": "winddown"}, > "type": {"value": "lava"} 439c406 < "time": 1.2 --- > "time": {"value": 1.2} 451,452c418,419 < "list": "lavaProjectiles", < "type": "entity" --- > "list": {"key": "lavaProjectiles"}, > "type": {"value": "entity"} 458,463c425 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 470c432 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 483,484c445,446 < "entity": "filterItem", < "message": "sink" --- > "entity": {"key": "filterItem"}, > "message": {"value": "sink"} 496c458 < "time": 1.2 --- > "time": {"value": 1.2} 504,505c466,467 < "state": "attack", < "type": "body" --- > "state": {"value": "attack"}, > "type": {"value": "body"} 513c475 < "time": "" --- > "time": {"value": ""} 521c483 < "list": "pillars" --- > "list": {"key": "pillars"} 523a486 > "list": "pillars", 532,533c495,496 < "entity": "lastPillar", < "message": "destroy" --- > "entity": {"key": "lastPillar"}, > "message": {"value": "destroy"} 541c504 < "time": "" --- > "time": {"value": ""} 549c512 < "time": 1.2 --- > "time": {"value": 1.2} behaviors\monsters\boss\kluexboss\iceattack.behavior 5d4 < "/scripts/actions/monster.lua", 7,8d5 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 15,16d11 < "whirlwindTime": 10, < "followTargetTime": 5, 23,28c18 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 35c25 < "sound": "prepareIce" --- > "sound": {"value": "prepareIce"} 43c33 < "color": "blue" --- > "color": {"value": "blue"} 51,55c41,42 < "offset": [ < 0, < 8 < ], < "position": "spawn" --- > "offset": {"value": [0, 8]}, > "position": {"key": "spawn"} 66,67c53,54 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 75,76c62,63 < "position": "attackPosition", < "tolerance": 1 --- > "position": {"key": "attackPosition"}, > "tolerance": {"value": 1} 84c71 < "time": 1.2 --- > "time": {"value": 1.2} 94,97c81 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 105,106c89,90 < "maxLoops": 3, < "untilSuccess": false --- > "maxLoops": {"value": 3}, > "untilSuccess": {"value": false} 112,117c96 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 124,125c103,104 < "state": "attack", < "type": "body" --- > "state": {"value": "attack"}, > "type": {"value": "body"} 133c112 < "time": "" --- > "time": {"value": ""} 141c120 < "sound": "spawnIceEruptions" --- > "sound": {"value": "spawnIceEruptions"} 149,153c128,129 < "offset": [ < -16, < 0 < ], < "position": "spawn" --- > "offset": {"value": [-16, 0]}, > "position": {"key": "spawn"} 164,170c140,146 < "areaWidth": 32, < "center": "leftProjectile", < "power": 10, < "projectileCount": 3, < "projectileType": "iceeruptiontele", < "segmentWidth": 8, < "spawnHeight": 0.625 --- > "areaWidth": {"value": 32}, > "center": {"key": "leftProjectile"}, > "power": {"value": 10}, > "projectileCount": {"value": 3}, > "projectileType": {"value": "iceeruptiontele"}, > "segmentWidth": {"value": 8}, > "spawnHeight": {"value": 0.625} 181,185c157,158 < "offset": [ < 16, < 0 < ], < "position": "spawn" --- > "offset": {"value": [16, 0]}, > "position": {"key": "spawn"} 196,202c169,175 < "areaWidth": 32, < "center": "rightProjectile", < "power": 10, < "projectileCount": 3, < "projectileType": "iceeruptiontele", < "segmentWidth": 8, < "spawnHeight": 0.625 --- > "areaWidth": {"value": 32}, > "center": {"key": "rightProjectile"}, > "power": {"value": 10}, > "projectileCount": {"value": 3}, > "projectileType": {"value": "iceeruptiontele"}, > "segmentWidth": {"value": 8}, > "spawnHeight": {"value": 0.625} 213c186 < "time": 0.4 --- > "time": {"value": 0.4} 221c194 < "time": 2.4 --- > "time": {"value": 2.4} behaviors\monsters\boss\kluexboss\kluexboss.behavior 14,18c14 < "parameters": { < "whirlwindTime": 10, < "followTargetTime": 5, < "windupTime": 0.4 < }, --- > "parameters": {}, 30c26 < "shouldDie": false --- > "shouldDie": {"value": false} 38,42c34,35 < "offset": [ < 0, < 8 < ], < "position": "spawn" --- > "offset": {"value": [0, 8]}, > "position": {"key": "spawn"} 53,54c46,47 < "position": "hover", < "tolerance": 1 --- > "position": {"key": "hover"}, > "tolerance": {"value": 1} 62,65c55 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 73c63 < "time": 1 --- > "time": {"value": 1} 81,82c71,72 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 90,98c80,86 < "targetQueryRange": 80, < "keepTargetInRange": 100, < "targetEntityTypes": [ < "player" < ], < "keepTargetInSight": true, < "queryTargets": true, < "targetOnDamage": true, < "targetOutOfSightTime": 1 --- > "targetQueryRange": {"value": 80}, > "keepTargetInRange": {"value": 100}, > "targetEntityTypes": {"value": ["player"]}, > "keepTargetInSight": {"value": true}, > "queryTargets": {"value": true}, > "targetOnDamage": {"value": true}, > "targetOutOfSightTime": {"value": 1} 112,113c100,101 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 121c109 < "entity": "target" --- > "entity": {"key": "target"} 129,130c117,118 < "percentage": 0, < "resource": "health" --- > "percentage": {"value": 0}, > "resource": {"value": "health"} 144c132 < "type": "Special" --- > "type": {"value": "Special"} 152c140 < "time": 0.8 --- > "time": {"value": 0.8} 160c148 < "aggressive": true --- > "aggressive": {"value": true} 168,169c156,157 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 175,180c163 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 229,230c212,213 < "percentage": 0, < "resource": "health" --- > "percentage": {"value": 0}, > "resource": {"value": "health"} 239c222 < "color": "red" --- > "color": {"value": "red"} 247,248c230,231 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 256,258c239 < "parameters": { < "gravityEnabled": true < } --- > "parameters": {"value": {"gravityEnabled": true}} 288c269 < "enable": false --- > "enable": {"value": false} 296c277 < "shouldDie": true --- > "shouldDie": {"value": true} 312c293 < "color": "red" --- > "color": {"value": "red"} 320c301 < "aggressive": false --- > "aggressive": {"value": false} 328,332c309,310 < "offset": [ < 0, < 8 < ], < "position": "spawn" --- > "offset": {"value": [0, 8]}, > "position": {"key": "spawn"} 343,344c321,322 < "position": "hover", < "tolerance": 1 --- > "position": {"key": "hover"}, > "tolerance": {"value": 1} 352,355c330 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 363,364c338,339 < "state": "idle", < "type": "body" --- > "state": {"value": "idle"}, > "type": {"value": "body"} 372c347 < "type": "Special" --- > "type": {"value": "Special"} 380,381c355,356 < "percentage": 1, < "resource": "health" --- > "percentage": {"value": 1}, > "resource": {"value": "health"} behaviors\monsters\boss\kluexboss\plasmaattack.behavior 15d14 < "windupTime": 0.4, 26,31c25 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 38c32 < "sound": "preparePlasma" --- > "sound": {"value": "preparePlasma"} 46c40 < "color": "red" --- > "color": {"value": "red"} 54,58c48,49 < "offset": [ < 15, < 4 < ], < "position": "spawn" --- > "offset": {"value": [15, 4]}, > "position": {"key": "spawn"} 69,73c60,61 < "offset": [ < -15, < 4 < ], < "position": "spawn" --- > "offset": {"value": [-15, 4]}, > "position": {"key": "spawn"} 93,94c81,82 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 102,103c90,91 < "maxLoops": 6, < "untilSuccess": false --- > "maxLoops": {"value": 6}, > "untilSuccess": {"value": false} 109,114c97 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 120,125c103 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 132,133c110,111 < "number": "wallDirection", < "factor": "" --- > "factor": {"key": ""}, > "number": {"key": "wallDirection"} 144,145c122,123 < "max": "", < "min": "" --- > "max": {"key": ""}, > "min": {"key": ""} 156,160c134,135 < "offset": [ < "xOffset", < "yOffset" < ], < "position": "spawn" --- > "offset": {"value": ["xOffset", "yOffset"]}, > "position": {"key": "spawn"} 171,173c146,148 < "position": "movePosition", < "tolerance": 1, < "speed": "" --- > "position": {"key": "movePosition"}, > "speed": {"key": ""}, > "tolerance": {"value": 1} 181,184c156 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 193,198c165 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 205,206c172,173 < "number": -1, < "factor": "" --- > "factor": {"key": ""}, > "number": {"value": -1} 217,218c184,185 < "max": "", < "min": "minXOffset" --- > "max": {"key": ""}, > "min": {"key": "minXOffset"} 229,230c196,197 < "number": 1, < "factor": "" --- > "factor": {"key": ""}, > "number": {"value": 1} 241,245c208,209 < "offset": [ < "xOffset", < "yOffset" < ], < "position": "spawn" --- > "offset": {"value": ["xOffset", "yOffset"]}, > "position": {"key": "spawn"} 256,258c220,222 < "position": "movePosition", < "tolerance": 1, < "speed": "" --- > "position": {"key": "movePosition"}, > "speed": {"key": ""}, > "tolerance": {"value": 1} 266,269c230 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 279c240 < "direction": "wallDirection" --- > "direction": {"key": "wallDirection"} 293,294c254,255 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 300,305c261 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 312,313c268,269 < "state": "fastattack", < "type": "body" --- > "state": {"value": "fastattack"}, > "type": {"value": "body"} 321c277 < "time": "" --- > "time": {"value": ""} 329,330c285,286 < "entity": "self", < "target": "target" --- > "entity": {"key": "self"}, > "target": {"key": "target"} 341c297 < "sound": "plasmaAttack" --- > "sound": {"value": "plasmaAttack"} 349,354c305,310 < "position": "self", < "projectileType": "delayedplasmaball", < "aimVector": "aimVector", < "trackSource": false, < "parameters": {}, < "target": "target" --- > "aimVector": {"key": "aimVector"}, > "parameters": {"value": {}}, > "position": {"key": "self"}, > "projectileType": {"value": "delayedplasmaball"}, > "target": {"key": "target"}, > "trackSource": {"value": false} 362c318 < "time": "" --- > "time": {"value": ""} 370c326 < "time": 0.05 --- > "time": {"value": 0.05} 377,382c333 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 389c340 < "list": "targets" --- > "list": {"key": "targets"} 391a343 > "list": "targets", 400c352,355 < "entity": "cycledTarget", --- > "entity": {"key": "cycledTarget"}, > "list": {"key": "targets"} > }, > "output" : { 409c364 < "list": "targets" --- > "list": {"key": "targets"} 424c379 < } \ No newline at end of file --- > } behaviors\monsters\boss\kluexboss\windattack.behavior 12,16c12 < "parameters": { < "whirlwindTime": 10, < "followTargetTime": 5, < "windupTime": 0.4 < }, --- > "parameters": {}, 21,26c17 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 33c24 < "color": "red" --- > "color": {"value": "red"} 41,44c32 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 52,55c40,43 < "avoidLiquid": true, < "maxHeight": 0, < "minHeight": -30, < "position": "spawn" --- > "avoidLiquid": {"value": true}, > "maxHeight": {"value": 0}, > "minHeight": {"value": -30}, > "position": {"key": "spawn"} 66,67c54,55 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 75,76c63,64 < "position": "groundPosition", < "tolerance": 0.2 --- > "position": {"key": "groundPosition"}, > "tolerance": {"value": 0.2} 84c72 < "time": 1.2 --- > "time": {"value": 1.2} 94,95c82,83 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 103,105c91,93 < "type": "body", < "state": "spinwindup", < "fallback": "spinwinddown" --- > "fallback": {"value": "spinwinddown"}, > "state": {"value": "spinwindup"}, > "type": {"value": "body"} 112,117c100 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 124c107 < "sound": "prepareWind" --- > "sound": {"value": "prepareWind"} 132c115 < "time": 0.8 --- > "time": {"value": 0.8} 140,143c123 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 151,152c131,132 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 160,162c140,142 < "type": "vortex", < "state": "spin", < "fallback": "idle" --- > "fallback": {"value": "idle"}, > "state": {"value": "spin"}, > "type": {"value": "vortex"} 170c150 < "emitter": "windleft" --- > "emitter": {"value": "windleft"} 178c158 < "emitter": "windright" --- > "emitter": {"value": "windright"} 190,195c170 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 202,203c177 < "name": "left", < "active": true --- > "name": {"value": "left"} 211,212c185 < "name": "right", < "active": true --- > "name": {"value": "right"} 220c193 < "name": "windswept" --- > "name": {"value": "windswept"} 230,235c203 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 242,243c210,211 < "maxLoops": 5, < "untilSuccess": false --- > "maxLoops": {"value": 5}, > "untilSuccess": {"value": false} 249,254c217 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 261c224 < "time": 2 --- > "time": {"value": 2} 269,283c232,239 < "position": "self", < "offset": [ < 0, < -1.375 < ], < "projectileType": "energywave", < "aimVector": [ < 1, < 0 < ], < "sourceEntity": "self", < "trackSource": false, < "projectileConfig": {}, < "scalePower": true, < "power": 10 --- > "aimVector": {"value": [1, 0]}, > "offset": {"value": [0, -1.375]}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "energywave"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 291,305c247,254 < "position": "self", < "offset": [ < 0, < -1.375 < ], < "projectileType": "energywave", < "aimVector": [ < -1, < 0 < ], < "sourceEntity": "self", < "trackSource": false, < "projectileConfig": {}, < "scalePower": true, < "power": 10 --- > "aimVector": {"value": [-1, 0]}, > "offset": {"value": [0, -1.375]}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "energywave"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 313c262 < "sound": "windFire" --- > "sound": {"value": "windFire"} 324c273 < "time": 2 --- > "time": {"value": 2} 340c289 < "time": 2.4 --- > "time": {"value": 2.4} behaviors\monsters\boss\kluexbossstatue\kluexbossstatue.behavior 14,17c14 < "bossSpawnOffset": [ < 0, < 1 < ] --- > "bossSpawnOffset": [0, 1] 23,28c20 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 35c27 < "shouldDie": false --- > "shouldDie": {"value": false} 43,44c35,36 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 52,60c44,50 < "targetQueryRange": 80, < "keepTargetInRange": 100, < "targetEntityTypes": [ < "player" < ], < "keepTargetInSight": true, < "queryTargets": true, < "targetOnDamage": true, < "targetOutOfSightTime": 1 --- > "targetQueryRange": {"value": 80}, > "keepTargetInRange": {"value": 100}, > "targetEntityTypes": {"value": ["player"]}, > "keepTargetInSight": {"value": true}, > "queryTargets": {"value": true}, > "targetOnDamage": {"value": true}, > "targetOutOfSightTime": {"value": 1} 74,75c64,65 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 83c73 < "entity": "target" --- > "entity": {"key": "target"} 91c81 < "enable": true --- > "enable": {"value": true} 99,100c89,90 < "percentage": 0, < "resource": "health" --- > "percentage": {"value": 0}, > "resource": {"value": "health"} 114c104 < "type": "Special" --- > "type": {"value": "Special"} 122c112 < "time": 0.8 --- > "time": {"value": 0.8} 130c120 < "aggressive": true --- > "aggressive": {"value": true} 138,139c128,129 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 145,150c135 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 193,194c178,179 < "percentage": 0, < "resource": "health" --- > "percentage": {"value": 0}, > "resource": {"value": "health"} 203c188 < "color": "red" --- > "color": {"value": "red"} 211c196 < "time": 0.8 --- > "time": {"value": 0.8} 219c204 < "emitter": "destroy" --- > "emitter": {"value": "destroy"} 227,228c212,213 < "offset": "", < "position": "spawn" --- > "offset": {"key": ""}, > "position": {"key": "spawn"} 239,248c224,228 < "inheritParameters": [ < "musicStagehands" < ], < "position": "bossSpawn", < "preserveOwner": true, < "replacement": false, < "type": "kluexboss", < "parameters": { < "uniqueId": "kluexbossair" < } --- > "inheritParameters": {"value": ["musicStagehands"]}, > "parameters": {"value": {"uniqueId": "kluexbossair"}}, > "position": {"key": "bossSpawn"}, > "replacement": {"value": false}, > "type": {"value": "kluexboss"} 256c236 < "shouldDie": true --- > "shouldDie": {"value": true} 272c252 < "color": "red" --- > "color": {"value": "red"} 280c260 < "aggressive": false --- > "aggressive": {"value": false} 288,289c268,269 < "state": "idle", < "type": "body" --- > "state": {"value": "idle"}, > "type": {"value": "body"} 297c277 < "type": "None" --- > "type": {"value": "None"} 305,306c285,286 < "percentage": 1, < "resource": "health" --- > "percentage": {"value": 1}, > "resource": {"value": "health"} behaviors\monsters\boss\kluexbossstatue\statuefireattack.behavior 2a3 > "description": "", 4d4 < "/scripts/actions/monster.lua", 6,7d5 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 10,12c8 < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua" --- > "/scripts/actions/world.lua" 16,18c12 < "pillarCount": 2, < "fireStartHeight": 21, < "fireAttackHeight": 11 --- > "pillarCount": 2 24,29c18 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 36c25 < "sound": "prepareFire" --- > "sound": {"value": "prepareFire"} 44c33 < "color": "yellow" --- > "color": {"value": "yellow"} 52,53c41,42 < "state": "attack", < "type": "body" --- > "state": {"value": "attack"}, > "type": {"value": "body"} 61c50 < "time": "" --- > "time": {"value": ""} 69c58 < "sound": "spawnPlatforms" --- > "sound": {"value": "spawnPlatforms"} 77,80c66,69 < "areaWidth": 64, < "center": "spawn", < "pillarCount": "", < "pillarHeight": 8 --- > "areaWidth": {"value": 64}, > "center": {"key": "spawn"}, > "pillarCount": {"key": ""}, > "pillarHeight": {"value": 8} 91c80 < "time": 2 --- > "time": {"value": 2} 99,100c88,89 < "state": "attack", < "type": "body" --- > "state": {"value": "attack"}, > "type": {"value": "body"} 108c97 < "time": "" --- > "time": {"value": ""} 116,122c105,111 < "areaWidth": 64, < "center": "spawn", < "power": 10, < "projectileCount": 8, < "projectileType": "floorlava", < "segmentWidth": 8, < "spawnHeight": -1 --- > "areaWidth": {"value": 64}, > "center": {"key": "spawn"}, > "power": {"value": 10}, > "projectileCount": {"value": 8}, > "projectileType": {"value": "floorlava"}, > "segmentWidth": {"value": 8}, > "spawnHeight": {"value": -1} 133c122 < "time": 5 --- > "time": {"value": 5} 141,142c130,131 < "list": "lavaProjectiles", < "type": "entity" --- > "list": {"key": "lavaProjectiles"}, > "type": {"value": "entity"} 148,153c137 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 160c144 < "entity": "eachItem" --- > "entity": {"key": "eachItem"} 168,169c152,153 < "entity": "eachItem", < "message": "sink" --- > "entity": {"key": "eachItem"}, > "message": {"value": "sink"} 180c164 < "time": 1.2 --- > "time": {"value": 1.2} 188,189c172,173 < "state": "attack", < "type": "body" --- > "state": {"value": "attack"}, > "type": {"value": "body"} 197c181 < "time": "" --- > "time": {"value": ""} 205,206c189,190 < "list": "pillars", < "type": "entity" --- > "list": {"key": "pillars"}, > "type": {"value": "entity"} 212,217c196 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 224c203 < "entity": "eachItem" --- > "entity": {"key": "eachItem"} 232,233c211,212 < "entity": "eachItem", < "message": "destroy" --- > "entity": {"key": "eachItem"}, > "message": {"value": "destroy"} 244c223 < "time": "" --- > "time": {"value": ""} 249c228 < } \ No newline at end of file --- > } behaviors\monsters\boss\kluexbossstatue\statueiceattack.behavior 2a3 > "description": "", 4d4 < "/scripts/actions/monster.lua", 6,7d5 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 19,24c17 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 31c24 < "sound": "prepareIce" --- > "sound": {"value": "prepareIce"} 39c32 < "color": "blue" --- > "color": {"value": "blue"} 47,48c40,41 < "maxLoops": 3, < "untilSuccess": false --- > "maxLoops": {"value": 3}, > "untilSuccess": {"value": false} 54,59c47 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 66,67c54,55 < "state": "attack", < "type": "body" --- > "state": {"value": "attack"}, > "type": {"value": "body"} 75c63 < "time": "" --- > "time": {"value": ""} 83c71 < "sound": "spawnIceEruptions" --- > "sound": {"value": "spawnIceEruptions"} 91,95c79,80 < "offset": [ < -16, < 0 < ], < "position": "self" --- > "offset": {"value": [-16, 0]}, > "position": {"key": "self"} 106,112c91,97 < "areaWidth": 32, < "center": "leftProjectile", < "power": 10, < "projectileCount": 1, < "projectileType": "iceeruptiontele", < "segmentWidth": 8, < "spawnHeight": 0.625 --- > "areaWidth": {"value": 32}, > "center": {"key": "leftProjectile"}, > "power": {"value": 10}, > "projectileCount": {"value": 1}, > "projectileType": {"value": "iceeruptiontele"}, > "segmentWidth": {"value": 8}, > "spawnHeight": {"value": 0.625} 120,124c105,106 < "offset": [ < 16, < 0 < ], < "position": "self" --- > "offset": {"value": [16, 0]}, > "position": {"key": "self"} 135,141c117,123 < "areaWidth": 32, < "center": "rightProjectile", < "power": 10, < "projectileCount": 1, < "projectileType": "iceeruptiontele", < "segmentWidth": 8, < "spawnHeight": 0.625 --- > "areaWidth": {"value": 32}, > "center": {"key": "rightProjectile"}, > "power": {"value": 10}, > "projectileCount": {"value": 1}, > "projectileType": {"value": "iceeruptiontele"}, > "segmentWidth": {"value": 8}, > "spawnHeight": {"value": 0.625} 149c131 < "time": 0.4 --- > "time": {"value": 0.4} 157c139 < "time": 2.4 --- > "time": {"value": 2.4} behaviors\monsters\boss\kluexbossstatue\statueplasmaattack.behavior 2a3 > "description": "", 4d4 < "/scripts/actions/monster.lua", 6,8d5 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", < "/scripts/behavior.lua", 9a7 > "/scripts/behavior.lua", 13,15c11 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/projectiles.lua" --- > "/scripts/actions/projectiles.lua" 18,23c14 < "windupTime": 0.4, < "fastWindupTime": 0.2, < "plasmaAttackX": 15, < "plasmaAttackY": 10, < "plasmaAttackFlySpeed": 15, < "plasmaMinY": -5 --- > "fastWindupTime": 0.2 29,34c20 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 41c27 < "sound": "preparePlasma" --- > "sound": {"value": "preparePlasma"} 49c35 < "color": "red" --- > "color": {"value": "red"} 56,61c42 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 67c48,49 < "parameters": { --- > "parameters": {}, > "output": { 76,80c58,62 < "list": "plasmaoffsets", < "vec2": [ < -6, < 0 < ] --- > "list": {"key": "plasmaoffsets"}, > "vec2": {"value": [-6, 0]} > }, > "output" : { > "list" : "plasmaoffsets" 88,92c70,74 < "list": "plasmaoffsets", < "vec2": [ < -3, < 4.5 < ] --- > "list": {"key": "plasmaoffsets"}, > "vec2": {"value": [-3, 4.5]} > }, > "output" : { > "list" : "plasmaoffsets" 100,104c82,86 < "list": "plasmaoffsets", < "vec2": [ < 0, < 9 < ] --- > "list": {"key": "plasmaoffsets"}, > "vec2": {"value": [0, 9]} > }, > "output" : { > "list" : "plasmaoffsets" 112,116c94,98 < "list": "plasmaoffsets", < "vec2": [ < 3, < 4.5 < ] --- > "list": {"key": "plasmaoffsets"}, > "vec2": {"value": [3, 4.5]} > }, > "output" : { > "list" : "plasmaoffsets" 124,128c106,110 < "list": "plasmaoffsets", < "vec2": [ < 6, < 0 < ] --- > "list": {"key": "plasmaoffsets"}, > "vec2": {"value": [6, 0]} > }, > "output" : { > "list" : "plasmaoffsets" 136c118 < "list": "plasmaoffsets" --- > "list": {"key": "plasmaoffsets"} 149,150c131,132 < "maxLoops": 2, < "untilSuccess": false --- > "maxLoops": {"value": 2}, > "untilSuccess": {"value": false} 157,158c139,140 < "list": "plasmaoffsets", < "type": "vec2" --- > "list": {"key": "plasmaoffsets"}, > "type": {"value": "vec2"} 164,169c146 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 176,177c153,154 < "state": "fastattack", < "type": "body" --- > "state": {"value": "fastattack"}, > "type": {"value": "body"} 185c162 < "time": "" --- > "time": {"value": ""} 193c170 < "sound": "plasmaAttack" --- > "sound": {"value": "plasmaAttack"} 201,202c178,179 < "offset": "eachItem", < "position": "self" --- > "offset": {"key": "eachItem"}, > "position": {"key": "self"} 213c190 < "entity": "target" --- > "entity": {"key": "target"} 224,225c201,202 < "from": "plasmaPosition", < "to": "targetPosition" --- > "from": {"key": "plasmaPosition"}, > "to": {"key": "targetPosition"} 236,241c213,218 < "position": "plasmaPosition", < "projectileType": "delayedplasmaball", < "aimVector": "aimVector", < "trackSource": false, < "parameters": {}, < "target": "target" --- > "aimVector": {"key": "aimVector"}, > "parameters": {"value": {}}, > "position": {"key": "plasmaPosition"}, > "projectileType": {"value": "delayedplasmaball"}, > "target": {"key": "target"}, > "trackSource": {"value": false} 249c226 < "time": "" --- > "time": {"value": ""} 256,261c233 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 268c240 < "list": "targets" --- > "list": {"key": "targets"} 270a243 > "list": "targets", 279c252,255 < "entity": "cycledTarget", --- > "entity": {"key": "cycledTarget"}, > "list": {"key": "targets"} > }, > "output" : { 288c264 < "list": "targets" --- > "list": {"key": "targets"} 305c281 < "time": 2 --- > "time": {"value": 2} 310c286 < } \ No newline at end of file --- > } behaviors\monsters\boss\spiderboss\acidspray.behavior 8d7 < "/scripts/actions/monster.lua", 10,15c9,10 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/behavior.lua", --- > "/scripts/actions/monster.lua", > "/scripts/behavior.lua", 20,22c15 < "acidSprayConfig": { < "power": 1.5 < } --- > "acidSprayConfig": {"power": 1.5} 41c34 < "direction": "spitSide" --- > "direction": {"key": "spitSide"} 71,72c64,65 < "number": "spitSide", < "factor": 20 --- > "factor": {"value": 20}, > "number": {"key": "spitSide"} 83,85c76,78 < "position": "spawn", < "x": "spitX", < "y": 5 --- > "position": {"key": "spawn"}, > "x": {"key": "spitX"}, > "y": {"value": 5} 96,97c89,90 < "type": "body", < "state": "idle" --- > "state": {"value": "idle"}, > "type": {"value": "body"} 100a94 > "title": null, 104c98 < "to": "attack" --- > "to": {"key": "attack"} 115,116c109,110 < "type": "legs", < "state": "rotate" --- > "state": {"value": "rotate"}, > "type": {"value": "legs"} 124,125c118,119 < "vector": "toAttack", < "rate": 3 --- > "rate": {"value": 3}, > "vector": {"key": "toAttack"} 133,134c127,128 < "type": "legs", < "state": "walk" --- > "state": {"value": "walk"}, > "type": {"value": "legs"} 142c136 < "position": "attack" --- > "position": {"key": "attack"} 150,151c144,145 < "type": "legs", < "state": "rotate" --- > "state": {"value": "rotate"}, > "type": {"value": "legs"} 171c165 < "target": "target" --- > "target": {"key": "target"} 182,183c176,177 < "vector": "toTarget", < "rate": 3 --- > "rate": {"value": 3}, > "vector": {"key": "toTarget"} 193,194c187 < "number": -0.25, < "toNumber": "fireAngle" --- > "number": {"value": -0.25} 205,206c198,199 < "vector": "toTarget", < "angle": "fireAngle" --- > "angle": {"key": "fireAngle"}, > "vector": {"key": "toTarget"} 217,221c210,211 < "vector": [ < 9, < 0 < ], < "direction": "toTarget" --- > "direction": {"key": "toTarget"}, > "vector": {"value": [9, 0]} 232,233c222,223 < "state": "slam", < "type": "body" --- > "state": {"value": "slam"}, > "type": {"value": "body"} 241,242c231,232 < "type": "legs", < "state": "idle" --- > "state": {"value": "idle"}, > "type": {"value": "legs"} 250c240 < "sound": "spiderslam" --- > "sound": {"value": "spiderslam"} 258c248 < "time": 0.75 --- > "time": {"value": 0.75} 266,267c256,257 < "state": "fire", < "type": "body" --- > "state": {"value": "fire"}, > "type": {"value": "body"} 275c265 < "time": 0.25 --- > "time": {"value": 0.25} 283c273 < "sound": "spit" --- > "sound": {"value": "spit"} 291c281 < "maxLoops": 5 --- > "maxLoops": {"value": 5} 304,307c294,297 < "aimVector": "fireVector", < "offset": "fireOffset", < "projectileConfig": "", < "projectileType": "acidsweep" --- > "aimVector": {"key": "fireVector"}, > "offset": {"key": "fireOffset"}, > "projectileConfig": {"value": ""}, > "projectileType": {"value": "acidsweep"} 315,316c305,306 < "vector": "fireVector", < "angle": 0.1 --- > "angle": {"value": 0.1}, > "vector": {"key": "fireVector"} 330c320 < "time": 0.5 --- > "time": {"value": 0.5} behaviors\monsters\boss\spiderboss\hatch.behavior 20,21c20,21 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 29,31c29,31 < "type": "sound", < "state": "hatch", < "fallback": "off" --- > "fallback": {"value": "off"}, > "state": {"value": "hatch"}, > "type": {"value": "sound"} 39,40c39,40 < "maxLoops": "", < "untilSuccess": false --- > "maxLoops": {"key": ""}, > "untilSuccess": {"value": false} 53,54c53,54 < "max": 20, < "min": -20 --- > "max": {"value": 20}, > "min": {"value": -20} 65,66c65,66 < "max": 15, < "min": -15 --- > "max": {"value": 15}, > "min": {"value": -15} 77,78c77,78 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 86,89c86 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 103,104c100,101 < "type": "legs", < "state": "hurt" --- > "state": {"value": "hurt"}, > "type": {"value": "legs"} 112,116c109,110 < "offset": [ < "hatchX", < "hatchY" < ], < "position": "spawn" --- > "offset": {"value": ["hatchX", "hatchY"]}, > "position": {"key": "spawn"} 127,128c121,122 < "type": "body", < "state": "slam" --- > "state": {"value": "slam"}, > "type": {"value": "body"} 136,150c130,137 < "position": "hatch", < "offset": [ < 0, < 0 < ], < "projectileType": "ixolingspawn", < "angle": 0, < "aimVector": [ < 0, < 0 < ], < "sourceEntity": "self", < "trackSource": false, < "scalePower": false, < "power": 0 --- > "aimVector": {"value": [0, 0]}, > "angle": {"value": 0}, > "offset": {"value": [0, 0]}, > "position": {"key": "hatch"}, > "projectileType": {"value": "ixolingspawn"}, > "scalePower": {"value": false}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 158c145 < "sound": "hatch" --- > "sound": {"value": "hatch"} 172,173c159,160 < "type": "legs", < "state": "idle" --- > "state": {"value": "idle"}, > "type": {"value": "legs"} behaviors\monsters\boss\spiderboss\hurt.behavior 5,6d4 < "/scripts/actions/monster.lua", < "/scripts/actions/animator.lua", 8d5 < "/monsters/monster.lua", 10a8,9 > "/scripts/actions/animator.lua", > "/scripts/actions/monster.lua", 30c29 < "touchDamage": false --- > "touchDamage": {"value": false} 43,44c42,43 < "percentage": "", < "resource": "health" --- > "percentage": {"key": ""}, > "resource": {"value": "health"} 58,64c57,60 < "position": "self", < "range": 80, < "entityTypes": [ < "monster", < "npc" < ], < "type": "bossvulnerable" --- > "entityTypes": {"value": ["monster", "npc"]}, > "position": {"key": "self"}, > "range": {"value": 80}, > "type": {"value": "bossvulnerable"} 73c69 < "emitter": "shellshards" --- > "emitter": {"value": "shellshards"} 81c77 < "sound": "hurt" --- > "sound": {"value": "hurt"} 89c85 < "success": 2 --- > "success": {"value": 2} 97,98c93,94 < "name": "vulnerability", < "duration": 0.1 --- > "duration": {"value": 0.1}, > "name": {"value": "vulnerability"} 105,108c101 < "parameters": { < "type": "sliding", < "state": "off" < }, --- > "parameters": {}, 115,116c108,109 < "type": "body", < "state": "hurt" --- > "state": {"value": "hurt"}, > "type": {"value": "body"} 124,125c117,118 < "type": "shell", < "state": "invisible" --- > "state": {"value": "invisible"}, > "type": {"value": "shell"} 133,134c126,127 < "type": "legs", < "state": "hurt" --- > "state": {"value": "hurt"}, > "type": {"value": "legs"} 142,143c135,136 < "angle": 4.71, < "rate": 3 --- > "angle": {"value": 4.71}, > "rate": {"value": 3} 151,152c144,145 < "emitter": "slide", < "active": true --- > "active": {"value": true}, > "emitter": {"value": "slide"} 166,169c159 < "offset": [ < 0, < -17.5 < ] --- > "offset": {"value": [0, -17.5]} 177,181c167 < "vector": [ < 0, < -1 < ], < "speed": 5 --- > "vector": {"value": [0, -1]} 191,192c177,178 < "emitter": "slide", < "active": false --- > "active": {"value": false}, > "emitter": {"value": "slide"} 206,207c192,193 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 215,218c201 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 226c209 < "time": 5 --- > "time": {"value": 5} 243,244c226,227 < "percentage": "", < "resource": "health" --- > "percentage": {"key": ""}, > "resource": {"value": "health"} behaviors\monsters\boss\spiderboss\main.behavior 20,25c20,21 < "deathMovementParameters": { < "gravityEnabled": true < }, < "deathAcidSprayConfig": { < "power": 0 < } --- > "deathMovementParameters": {"gravityEnabled": true}, > "deathAcidSprayConfig": {"power": 0} 32,33c28,29 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 53c49 < "fail": 1 --- > "fail": {"value": 1} 61,63c57,59 < "keepInSight": true, < "queryRange": 50, < "trackingRange": 100 --- > "queryRange": {"value": 50}, > "trackingRange": {"value": 100}, > "keepInSight": {"value": true} 83c79 < "shouldDie": false --- > "shouldDie": {"value": false} 91c87 < "type": "startboss" --- > "type": {"value": "startboss"} 99,100c95,96 < "type": "body", < "state": "breakout" --- > "state": {"value": "breakout"}, > "type": {"value": "body"} 108c104 < "type": "Special" --- > "type": {"value": "Special"} 116c112 < "enable": true --- > "enable": {"value": true} 123,128c119 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 135c126 < "sound": "cocooncrack" --- > "sound": {"value": "cocooncrack"} 143c134 < "time": 0.67 --- > "time": {"value": 0.67} 151c142 < "sound": "cocooncrack" --- > "sound": {"value": "cocooncrack"} 159c150 < "time": 0.67 --- > "time": {"value": 0.67} 167c158 < "sound": "cocooncrack" --- > "sound": {"value": "cocooncrack"} 175c166 < "time": 0.67 --- > "time": {"value": 0.67} 183c174 < "sound": "cocoonburst" --- > "sound": {"value": "cocoonburst"} 193c184 < "touchDamage": true --- > "touchDamage": {"value": true} 201,202c192,193 < "type": "body", < "state": "idle" --- > "state": {"value": "idle"}, > "type": {"value": "body"} 210,211c201,202 < "type": "legs", < "state": "idle" --- > "state": {"value": "idle"}, > "type": {"value": "legs"} 219c210 < "emitter": "cocoonburst" --- > "emitter": {"value": "cocoonburst"} 227c218 < "aggressive": true --- > "aggressive": {"value": true} 236,241c227 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 248,249c234,235 < "type": "shell", < "state": "stage1" --- > "state": {"value": "stage1"}, > "type": {"value": "shell"} 257,258c243,244 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 271,272c257,258 < "percentage": 0.95, < "resource": "health" --- > "percentage": {"value": 0.95}, > "resource": {"value": "health"} 291,292c277,278 < "minHealth": 0.65, < "maxHealth": 0.95 --- > "minHealth": {"value": 0.65}, > "maxHealth": {"value": 0.95} 300,301c286,287 < "fail": -1, < "success": 2 --- > "fail": {"value": -1}, > "success": {"value": 2} 314,315c300,301 < "percentage": 0.65, < "resource": "health" --- > "percentage": {"value": 0.65}, > "resource": {"value": "health"} 324,325c310,311 < "name": "vulnerability", < "duration": 0.1 --- > "duration": {"value": 0.1}, > "name": {"value": "vulnerability"} 347,348c333,334 < "setHealth": 0.65, < "shellState": "stage2" --- > "shellState": {"value": "stage2"}, > "setHealth": {"value": 0.65} 356,357c342,343 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 370,371c356,357 < "percentage": 0.58, < "resource": "health" --- > "percentage": {"value": 0.58}, > "resource": {"value": "health"} 390,391c376,377 < "minHealth": 0.25, < "maxHealth": 0.6 --- > "minHealth": {"value": 0.25}, > "maxHealth": {"value": 0.6} 399,400c385,386 < "fail": -1, < "success": 2 --- > "fail": {"value": -1}, > "success": {"value": 2} 413,414c399,400 < "percentage": 0.25, < "resource": "health" --- > "percentage": {"value": 0.25}, > "resource": {"value": "health"} 423,424c409,410 < "name": "vulnerability", < "duration": 0.1 --- > "duration": {"value": 0.1}, > "name": {"value": "vulnerability"} 446,447c432,433 < "setHealth": 0.25, < "shellState": "stage3" --- > "shellState": {"value": "stage3"}, > "setHealth": {"value": 0.25} 455,456c441,442 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 469,470c455,456 < "percentage": 0.15, < "resource": "health" --- > "percentage": {"value": 0.15}, > "resource": {"value": "health"} 489,490c475,476 < "minHealth": 0, < "maxHealth": 0.2 --- > "minHealth": {"value": 0}, > "maxHealth": {"value": 0.2} 498,499c484,485 < "fail": -1, < "success": 2 --- > "fail": {"value": -1}, > "success": {"value": 2} 512,513c498,499 < "percentage": 0, < "resource": "health" --- > "percentage": {"value": 0}, > "resource": {"value": "health"} 522,523c508,509 < "name": "vulnerability", < "duration": 0.1 --- > "duration": {"value": 0.1}, > "name": {"value": "vulnerability"} 542,547c528 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 554,555c535,536 < "state": "hurt", < "type": "body" --- > "state": {"value": "hurt"}, > "type": {"value": "body"} 569c550 < "enable": false --- > "enable": {"value": false} 577,578c558,559 < "state": "hurt", < "type": "legs" --- > "state": {"value": "hurt"}, > "type": {"value": "legs"} 586,587c567,568 < "active": true, < "emitter": "deathWindup" --- > "active": {"value": true}, > "emitter": {"value": "deathWindup"} 595c576 < "touchDamage": false --- > "touchDamage": {"value": false} 603,604c584,585 < "fail": -1, < "success": 2 --- > "fail": {"value": -1}, > "success": {"value": 2} 612,615c593 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 623c601 < "time": 2 --- > "time": {"value": 2} 635,640c613 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 647c620 < "sound": "deathWindup" --- > "sound": {"value": "deathWindup"} 655c628 < "time": 0.1 --- > "time": {"value": 0.1} 670,675c643 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 682c650 < "time": 1 --- > "time": {"value": 1} 690,691c658,659 < "active": true, < "emitter": "deathWindupExplosions" --- > "active": {"value": true}, > "emitter": {"value": "deathWindupExplosions"} 706,711c674 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 718c681 < "time": 0.5 --- > "time": {"value": 0.5} 726c689 < "sound": "spiderslam" --- > "sound": {"value": "spiderslam"} 734,737c697 < "time": 1 < }, < "output": { < "ratio": "" --- > "time": {"value": 1} 745c705 < "sound": "spit" --- > "sound": {"value": "spit"} 753,757c713,714 < "vector": [ < 0, < -1 < ], < "angle": -0.125 --- > "angle": {"value": -0.125}, > "vector": {"value": [0, -1]} 768c725 < "maxLoops": 5 --- > "maxLoops": {"value": 5} 781,787c738,741 < "aimVector": "fireVector", < "offset": [ < 0, < 3 < ], < "projectileConfig": "", < "projectileType": "clustergoo" --- > "aimVector": {"key": "fireVector"}, > "offset": {"value": [0, 3]}, > "projectileConfig": {"value": ""}, > "projectileType": {"value": "clustergoo"} 795,796c749,750 < "vector": "fireVector", < "angle": 0.05 --- > "angle": {"value": 0.05}, > "vector": {"key": "fireVector"} 815,816c769,770 < "state": "dead", < "type": "body" --- > "state": {"value": "dead"}, > "type": {"value": "body"} 824,825c778,779 < "state": "die", < "type": "legs" --- > "state": {"value": "die"}, > "type": {"value": "legs"} 833c787 < "sound": "death" --- > "sound": {"value": "death"} 841,842c795,796 < "active": false, < "emitter": "deathWindup" --- > "active": {"value": false}, > "emitter": {"value": "deathWindup"} 850,851c804,805 < "active": false, < "emitter": "deathWindupExplosions" --- > "active": {"value": false}, > "emitter": {"value": "deathWindupExplosions"} 859,860c813,814 < "x": -0.5, < "y": 0 --- > "x": {"value": -0.5}, > "y": {"value": 0} 868,869c822,823 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 877c831 < "parameters": "" --- > "parameters": {"key": ""} 884,889c838 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 902,911c851,853 < "position": "self", < "offset": [ < 0, < -10 < ], < "collisionType": [ < "Null", < "Block", < "Dynamic" < ] --- > "collisionType": {"value": ["Null", "Block", "Dynamic"]}, > "offset": {"value": [0, -10]}, > "position": {"key": "self"} 933,941c875,877 < "aimVector": [ < 1, < 1 < ], < "offset": [ < 0, < 0 < ], < "projectileType": "spiderlegright" --- > "aimVector": {"value": [1, 1]}, > "offset": {"value": [0, 0]}, > "projectileType": {"value": "spiderlegright"} 949,957c885,887 < "aimVector": [ < -1, < 1 < ], < "offset": [ < 0, < 0 < ], < "projectileType": "spiderlegleft" --- > "aimVector": {"value": [-1, 1]}, > "offset": {"value": [0, 0]}, > "projectileType": {"value": "spiderlegleft"} 967c897 < "shouldDie": true --- > "shouldDie": {"value": true} 975c905 < "maxLoops": 20 --- > "maxLoops": {"value": 20} 988,989c918,919 < "max": 6.28, < "min": 0 --- > "max": {"value": 6.28}, > "min": {"value": 0} 1000,1004c930,931 < "vector": [ < 0, < 1 < ], < "angle": "rotation" --- > "angle": {"key": "rotation"}, > "vector": {"value": [0, 1]} 1015,1020c942,944 < "aimVector": "fireVector", < "offset": [ < 0, < 0 < ], < "projectileType": "meatchunk" --- > "aimVector": {"key": "fireVector"}, > "offset": {"value": [0, 0]}, > "projectileType": {"value": "meatchunk"} 1038c962 < "limit": 1 --- > "limit": {"value": 1} 1045,1046c969,970 < "angle": 60, < "rate": 1.5 --- > "angle": {"value": 60}, > "rate": {"value": 1.5} 1056c980 < "limit": 1 --- > "limit": {"value": 1} 1062,1067c986 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 1074,1081c993,995 < "position": "self", < "offset": [ < 0, < -10 < ], < "collisionType": [ < "Dynamic" < ] --- > "collisionType": {"value": ["Dynamic"]}, > "offset": {"value": [0, -10]}, > "position": {"key": "self"} 1089,1092c1003,1006 < "position": "self", < "range": 30, < "orderBy": "nearest", < "name": "dirttrapdoor" --- > "name": {"value": "dirttrapdoor"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 30} 1103,1104c1017,1018 < "maxLoops": -1, < "untilSuccess": true --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": true} 1115,1120c1029 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 1127c1036 < "list": "trapdoors" --- > "list": {"key": "trapdoors"} 1129a1039 > "list": "trapdoors", 1143,1144c1053,1054 < "entity": "trapdoor", < "func": "openDoor" --- > "entity": {"key": "trapdoor"}, > "func": {"value": "openDoor"} 1172c1082 < "enable": false --- > "enable": {"value": false} 1180c1090 < "aggressive": false --- > "aggressive": {"value": false} 1194c1104 < "type": "None" --- > "type": {"value": "None"} 1202,1203c1112,1113 < "resource": "health", < "percentage": 1 --- > "percentage": {"value": 1}, > "resource": {"value": "health"} 1211,1212c1121,1122 < "type": "legs", < "state": "cocoon" --- > "state": {"value": "cocoon"}, > "type": {"value": "legs"} 1220,1221c1130,1131 < "type": "body", < "state": "cocoon" --- > "state": {"value": "cocoon"}, > "type": {"value": "body"} 1229,1230c1139,1140 < "type": "shell", < "state": "invisible" --- > "state": {"value": "invisible"}, > "type": {"value": "shell"} 1248c1158 < "direction": 1 --- > "direction": {"value": 1} behaviors\monsters\boss\spiderboss\return.behavior 7d6 < "/scripts/actions/monster.lua", 9,10c8 < "/scripts/actions/entity.lua", < "/monsters/monster.lua" --- > "/scripts/actions/monster.lua" 24,27c22 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 35c30 < "to": "spawn" --- > "to": {"key": "spawn"} 52,53c47,48 < "target": "spawn", < "range": 1 --- > "range": {"value": 1}, > "target": {"key": "spawn"} 67,68c62,63 < "type": "legs", < "state": "rotate" --- > "state": {"value": "rotate"}, > "type": {"value": "legs"} 76,77c71,72 < "vector": "toSpawn", < "rate": 3.0 --- > "rate": {"value": 3}, > "vector": {"key": "toSpawn"} 85,86c80,81 < "type": "legs", < "state": "walk" --- > "state": {"value": "walk"}, > "type": {"value": "legs"} 94c89 < "position": "spawn" --- > "position": {"key": "spawn"} 102,105c97 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 117,118c109,110 < "type": "legs", < "state": "rotate" --- > "state": {"value": "rotate"}, > "type": {"value": "legs"} 126,127c118,119 < "angle": 4.71, < "rate": 3.0 --- > "angle": {"value": 4.71}, > "rate": {"value": 3} 135,136c127,128 < "type": "legs", < "state": "idle" --- > "state": {"value": "idle"}, > "type": {"value": "legs"} behaviors\monsters\boss\spiderboss\setstage.behavior 5d4 < "/scripts/actions/monster.lua", 7,9c6,7 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", < "/scripts/actions/status.lua" --- > "/scripts/actions/status.lua", > "/scripts/actions/entity.lua" 26,27c24,25 < "emitter": "slide", < "active": false --- > "active": {"value": false}, > "emitter": {"value": "slide"} 35,36c33,34 < "type": "shell", < "state": "" --- > "state": {"value": ""}, > "type": {"value": "shell"} 44,45c42,43 < "resource": "health", < "percentage": "" --- > "percentage": {"key": ""}, > "resource": {"value": "health"} 53c51 < "sound": "generateshell" --- > "sound": {"value": "generateshell"} 61c59 < "touchDamage": true --- > "touchDamage": {"value": true} behaviors\monsters\boss\spiderboss\slam.behavior 2a3 > "description": "", 4d4 < "/scripts/actions/monster.lua", 6,7c6 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", --- > "/scripts/actions/monster.lua", 12,14c11 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/math.lua", --- > "/scripts/actions/math.lua", 18,25c15 < "slamConfig": { < "power": 10 < }, < "slamMovementParameters": { < "gravityEnabled": true, < "airFriction": 0, < "gravityMultiplier": 2 < } --- > "slamMovementParameters": {"gravityEnabled": true, "airFriction": 0, "gravityMultiplier": 2} 38,39c28,29 < "type": "legs", < "state": "rotate" --- > "state": {"value": "rotate"}, > "type": {"value": "legs"} 47,48c37,38 < "angle": 4.71, < "rate": 3 --- > "angle": {"value": 4.71}, > "rate": {"value": 3} 56,57c46,47 < "type": "legs", < "state": "walk" --- > "state": {"value": "walk"}, > "type": {"value": "legs"} 65,66c55,56 < "type": "body", < "state": "idle" --- > "state": {"value": "idle"}, > "type": {"value": "body"} 74,75c64,65 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 83,86c73 < "offset": [ < 0, < -17.5 < ] --- > "offset": {"value": [0, -17.5]} 94,97c81 < "vector": [ < 0, < -1 < ] --- > "vector": {"value": [0, -1]} 107,108c91,92 < "x": 0, < "y": 0 --- > "x": {"value": 0}, > "y": {"value": 0} 116,119c100 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 127,128c108,109 < "state": "idle", < "type": "legs" --- > "state": {"value": "idle"}, > "type": {"value": "legs"} 136,139c117 < "time": 1 < }, < "output": { < "ratio": "" --- > "time": {"value": 1} 147,148c125,126 < "state": "walkback", < "type": "legs" --- > "state": {"value": "walkback"}, > "type": {"value": "legs"} 162,165c140 < "offset": [ < 0, < 11 < ] --- > "offset": {"value": [0, 11]} 173,174c148,149 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 182,185c157 < "vector": [ < 0, < 1 < ] --- > "vector": {"value": [0, 1]} 203c175 < "success": 3 --- > "success": {"value": 3} 211c183 < "target": "target" --- > "target": {"key": "target"} 228,229c200,201 < "entity": "target", < "xRange": 1 --- > "entity": {"key": "target"}, > "xRange": {"value": 1} 237,240c209 < "offset": [ < 7, < 0 < ] --- > "offset": {"value": [7, 0]} 248,251c217 < "offset": [ < -7, < 0 < ] --- > "offset": {"value": [-7, 0]} 273,274c239,240 < "first": "targetX", < "second": 0 --- > "first": {"key": "targetX"}, > "second": {"value": 0} 282,283c248,249 < "type": "legs", < "state": "straferight" --- > "state": {"value": "straferight"}, > "type": {"value": "legs"} 293,294c259,260 < "type": "legs", < "state": "strafeleft" --- > "state": {"value": "strafeleft"}, > "type": {"value": "legs"} 309,312c275 < "vector": [ < "targetX", < 0 < ] --- > "vector": {"value": ["targetX", 0]} 323,324c286,287 < "x": 0, < "y": 0 --- > "x": {"value": 0}, > "y": {"value": 0} 332,335c295 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 343,344c303,304 < "type": "legs", < "state": "idle" --- > "state": {"value": "idle"}, > "type": {"value": "legs"} 352,353c312,313 < "type": "body", < "state": "slam" --- > "state": {"value": "slam"}, > "type": {"value": "body"} 361c321 < "sound": "spiderslam" --- > "sound": {"value": "spiderslam"} 369c329 < "time": 1 --- > "time": {"value": 1} 377c337 < "sound": "spiderslam" --- > "sound": {"value": "spiderslam"} 385c345 < "time": 1 --- > "time": {"value": 1} 393,394c353,354 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 402c362 < "parameters": "" --- > "parameters": {"key": ""} 422,425c382 < "offset": [ < 0, < -20 < ] --- > "offset": {"value": [0, -20]} 441,450c398,401 < "offset": [ < 0, < -11 < ], < "projectileType": "spiderslam", < "aimVector": [ < 1, < 0 < ], < "trackSource": true --- > "aimVector": {"value": [1, 0]}, > "offset": {"value": [0, -11]}, > "projectileType": {"value": "spiderslam"}, > "trackSource": {"value": true} 458c409 < "sound": "spiderslam" --- > "sound": {"value": "spiderslam"} 466,467c417,418 < "type": "legs", < "state": "slam" --- > "state": {"value": "slam"}, > "type": {"value": "legs"} 475c426 < "time": 0.25 --- > "time": {"value": 0.25} 483c434 < "sound": "slam" --- > "sound": {"value": "slam"} 491c442 < "emitter": "slam" --- > "emitter": {"value": "slam"} 514,517c465 < "offset": [ < 0, < -17.5 < ] --- > "offset": {"value": [0, -17.5]} 526,529c474 < "vector": [ < 0, < 1 < ] --- > "vector": {"value": [0, 1]} 539,542c484 < "vector": [ < 0, < 0 < ] --- > "vector": {"value": [0, 0]} 550,553c492 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} behaviors\monsters\boss\spiderboss\stage1.behavior 33,34c33,34 < "cooldown": 30, < "onFail": false --- > "cooldown": {"value": 30}, > "onFail": {"value": false} 40,45c40 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 58c53 < "hatchNumber": 5 --- > "hatchNumber": {"value": 5} behaviors\monsters\boss\spiderboss\stage2.behavior 39,40c39,40 < "cooldown": 25, < "onFail": false --- > "cooldown": {"value": 25}, > "onFail": {"value": false} 46,51c46 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 64c59 < "hatchNumber": 8 --- > "hatchNumber": {"value": 8} behaviors\monsters\boss\spiderboss\stage3.behavior 28,32c28 < "hatchNumber": 10, < "spawnOffset": [ < "hatchX", < "hatchY" < ] --- > "hatchNumber": {"value": 10} behaviors\monsters\boss\spiderboss\sweep.behavior 15,17c15 < "acidSweepConfig": { < "power": 2 < } --- > "acidSweepConfig": {"power": 2} 36c34 < "direction": "sweepSide" --- > "direction": {"key": "sweepSide"} 58,59c56,57 < "number": "sweepSide", < "factor": 20 --- > "factor": {"value": 20}, > "number": {"key": "sweepSide"} 70,72c68,70 < "position": "spawn", < "x": "sweepX", < "y": 0 --- > "position": {"key": "spawn"}, > "x": {"key": "sweepX"}, > "y": {"value": 0} 83,84c81,82 < "type": "legs", < "state": "walk" --- > "state": {"value": "walk"}, > "type": {"value": "legs"} 92,93c90,91 < "type": "body", < "state": "idle" --- > "state": {"value": "idle"}, > "type": {"value": "body"} 101c99,100 < "to": "attack" --- > "from": {"key": "self"}, > "to": {"key": "attack"} 112,113c111,112 < "vector": "toAttack", < "rate": 3 --- > "rate": {"value": 3}, > "vector": {"key": "toAttack"} 121c120 < "position": "attack" --- > "position": {"key": "attack"} 129,130c128,129 < "type": "legs", < "state": "rotate" --- > "state": {"value": "rotate"}, > "type": {"value": "legs"} 137c136,138 < "parameters": {} --- > "parameters": { > "velocity": {"value": [0, 0]} > } 144,145c145,146 < "angle": 4.71, < "rate": 3 --- > "angle": {"value": 4.71}, > "rate": {"value": 3} 153c154 < "direction": "sweepSide" --- > "direction": {"key": "sweepSide"} 164,165c165,166 < "number": "sweepMove", < "factor": 12 --- > "factor": {"value": 12}, > "number": {"key": "sweepMove"} 176,177c177,178 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 185,187c186,188 < "type": "sound", < "state": "sweep", < "fallback": "off" --- > "fallback": {"value": "off"}, > "state": {"value": "sweep"}, > "type": {"value": "sound"} 201,202c202,203 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 222,223c223,224 < "first": "sweepMove", < "second": 0 --- > "first": {"key": "sweepMove"}, > "second": {"value": 0} 231,233c232,234 < "type": "legs", < "state": "straferight", < "fallback": "idle" --- > "fallback": {"value": "idle"}, > "state": {"value": "straferight"}, > "type": {"value": "legs"} 243,245c244,246 < "type": "legs", < "state": "strafeleft", < "fallback": "idle" --- > "fallback": {"value": "idle"}, > "state": {"value": "strafeleft"}, > "type": {"value": "legs"} 261c262 < "success": 2 --- > "success": {"value": 2} 280c281 < "sound": "sweep" --- > "sound": {"value": "sweep"} 288,297c289,292 < "offset": [ < 0, < -9 < ], < "projectileType": "acidsweep", < "aimVector": [ < 0, < -1 < ], < "projectileConfig": "" --- > "aimVector": {"value": [0, -1]}, > "offset": {"value": [0, -9]}, > "projectileConfig": {"value": ""}, > "projectileType": {"value": "acidsweep"} 305,308c300 < "time": [ < 0.125, < 0.25 < ] --- > "time": {"value": [0.125, 0.25]} 319,320c311,312 < "y": 0, < "x": "lineTest" --- > "x": {"key": "lineTest"}, > "y": {"value": 0} 328,329c320,321 < "y": 0, < "x": "sweepMove" --- > "x": {"key": "sweepMove"}, > "y": {"value": 0} 339,342c331 < "vector": [ < 0, < 0 < ] --- > "vector": {"value": [0, 0]} 350,353c339 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 365c351 < "time": 0.5 --- > "time": {"value": 0.5} behaviors\monsters\coordinator\npccombat.behavior 2a3 > "description": "", 10,11c11,12 < "func": "npcCombat", < "script": "/stagehands/coordinator/npccombat.lua" --- > "func": {"value": "npcCombat"}, > "script": {"value": "/stagehands/coordinator/npccombat.lua"} behaviors\monsters\critter\blooping.behavior 6,8c6 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/math.lua", --- > "/scripts/actions/math.lua", 11,14c9 < "/scripts/actions/monster.lua", < "/scripts/actions/animator.lua", < "/scripts/actions/entity.lua", < "/monsters/monster.lua" --- > "/scripts/actions/animator.lua" 21,26c16 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 33c23 < "entity": "self" --- > "entity": {"key": "self"} 48,53c38 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 66c51 < "limit": 1 --- > "limit": {"value": 1} 73,77c58,59 < "max": 1, < "min": 0 < }, < "output": { < "number": "" --- > "max": {"value": 1}, > "min": {"value": 0} 91c73 < "percentage": 0.5 --- > "percentage": {"value": 0.5} 102,103c84,85 < "addend": 2, < "number": "entityY" --- > "addend": {"value": 2}, > "number": {"key": "entityY"} 114,115c96,97 < "addend": -2, < "number": "entityY" --- > "addend": {"value": -2}, > "number": {"key": "entityY"} 129,133c111,112 < "cooldown": [ < 0.5, < 4 < ], < "onFail": true --- > "cooldown": {"value": [0.5, 4]}, > "onFail": {"value": true} 140,141c119,120 < "max": 0.9, < "min": -0.9 --- > "max": {"value": 0.9}, > "min": {"value": -0.9} 157,162c136 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 169,170c143,144 < "first": "entityY", < "second": "swimMinY" --- > "first": {"key": "entityY"}, > "second": {"key": "swimMinY"} 178,181c152 < "time": [ < 0.5, < 2.5 < ] --- > "time": {"value": [0.5, 2.5]} 192,197c163 < "entity": "self" < }, < "output": { < "position": "", < "x": "", < "y": "" --- > "entity": {"key": "self"} 204,209c170 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 221,222c182,183 < "first": "entityY", < "second": "swimMaxY" --- > "first": {"key": "entityY"}, > "second": {"key": "swimMaxY"} 231,232c192,193 < "state": "bloop", < "type": "movement" --- > "state": {"value": "bloop"}, > "type": {"value": "movement"} 240c201 < "time": 0.5 --- > "time": {"value": 0.5} 248,249c209,210 < "fail": 1, < "success": 2 --- > "fail": {"value": 1}, > "success": {"value": 2} 257,260c218 < "vector": [ < "swimDir", < 1 < ] --- > "vector": {"value": ["swimDir", 1]} 268,271c226 < "time": [ < 0.4, < 0.6 < ] --- > "time": {"value": [0.4, 0.6]} behaviors\monsters\critter\flying.behavior 5d4 < "/scripts/actions/monster.lua", 7,9d5 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", < "/scripts/actions/status.lua", 11d6 < "/scripts/actions/world.lua", 14c9 < "/scripts/behavior.lua", --- > "/scripts/behavior.lua", 15a11 > "/scripts/actions/status.lua", 23,28c19 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 35,36c26,27 < "state": "idle", < "type": "movement" --- > "state": {"value": "idle"}, > "type": {"value": "movement"} 49,54c40 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 67,68c53,54 < "cooldown": 1, < "onFail": true --- > "cooldown": {"value": 1}, > "onFail": {"value": true} 75,82c61,65 < "entityTypes": [ < "player", < "npc" < ], < "orderBy": "nearest", < "position": "self", < "range": 15, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player", "npc"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 15}, > "withoutEntity": {"key": "self"} 94c77 < "entity": "target" --- > "entity": {"key": "target"} 104,105c87,88 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 119,121c102 < "parameters": { < "gravityEnabled": true < } --- > "parameters": {"value": {"gravityEnabled": true}} 142c123 < "number": 1 --- > "number": {"value": 1} 153,154c134,135 < "state": "fly", < "type": "movement" --- > "state": {"value": "fly"}, > "type": {"value": "movement"} 167,172c148 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 199,200c175,176 < "cooldown": 0.2, < "onFail": false --- > "cooldown": {"value": 0.2}, > "onFail": {"value": false} 212,217c188 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 224,233c195,197 < "position": "self", < "offset": [ < "flyDir", < 0 < ], < "collisionType": [ < "Null", < "Block", < "Dynamic" < ] --- > "collisionType": {"value": ["Null", "Block", "Dynamic"]}, > "offset": {"value": ["flyDir", 0]}, > "position": {"key": "self"} 246c210 < "direction": "flyDir" --- > "direction": {"key": "flyDir"} 260,269c224,226 < "position": "self", < "offset": [ < 0, < 1 < ], < "collisionType": [ < "Null", < "Block", < "Dynamic" < ] --- > "collisionType": {"value": ["Null", "Block", "Dynamic"]}, > "offset": {"value": [0, 1]}, > "position": {"key": "self"} 280,281c237,238 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 288,293c245 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 305,306c257,258 < "first": "flyY", < "second": 15 --- > "first": {"key": "flyY"}, > "second": {"value": 15} 315,316c267,268 < "number": "flyY", < "factor": 1.5 --- > "factor": {"value": 1.5}, > "number": {"key": "flyY"} 329,330c281,282 < "number": "flyDir", < "factor": 15 --- > "factor": {"value": 15}, > "number": {"key": "flyDir"} 341,344c293 < "vector": [ < "flyX", < "flyY" < ] --- > "vector": {"value": ["flyX", "flyY"]} behaviors\monsters\critter\swimming.behavior 5d4 < "/scripts/actions/monster.lua", 7,8d5 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 18,23c15 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 30,31c22,23 < "state": "idle", < "type": "movement" --- > "state": {"value": "idle"}, > "type": {"value": "movement"} 39,42c31 < "time": [ < 1, < 3 < ] --- > "time": {"value": [1, 3]} 59,60c48,49 < "state": "swimslow", < "type": "movement" --- > "state": {"value": "swimslow"}, > "type": {"value": "movement"} 68,69c57,58 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 82,83c71,72 < "cooldown": 0.1, < "onFail": false --- > "cooldown": {"value": 0.1}, > "onFail": {"value": false} 89,94c78 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 101,110c85,87 < "position": "self", < "offset": [ < "swimDir", < 0 < ], < "collisionType": [ < "Null", < "Block", < "Dynamic" < ] --- > "collisionType": {"value": ["Null", "Block", "Dynamic"]}, > "offset": {"value": ["swimDir", 0]}, > "position": {"key": "self"} 118c95 < "direction": "swimDir" --- > "direction": {"key": "swimDir"} 133,134c110,111 < "direction": "swimDir", < "run": false --- > "direction": {"key": "swimDir"}, > "run": {"value": false} 142,145c119 < "time": [ < 1, < 1.5 < ] --- > "time": {"value": [1, 1.5]} behaviors\monsters\critter\walking.behavior 2a3 > "description": "", 4d4 < "/scripts/actions/monster.lua", 6,7d5 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 12,15c10 < "idleTime": [ < 2, < 8 < ], --- > "idleTime": [2, 8], 22,27c17 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 34,35c24,25 < "state": "idle", < "type": "movement" --- > "state": {"value": "idle"}, > "type": {"value": "movement"} 43c33 < "time": "" --- > "time": {"value": ""} 60,61c50,51 < "state": "walk", < "type": "movement" --- > "state": {"value": "walk"}, > "type": {"value": "movement"} 69,70c59,60 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 78,79c68,69 < "direction": "walk", < "run": false --- > "direction": {"key": "walk"}, > "run": {"value": false} 87c77 < "time": "" --- > "time": {"value": ""} behaviors\monsters\mission\cultistballista.behavior 5a6 > "/scripts/behavior.lua", 7,8d7 < "/scripts/actions/entity.lua", < "/scripts/behavior.lua", 12d10 < "/scripts/actions/monster.lua", 14,15d11 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 21,28c17,18 < "cannonRotationCenter": [ < 0, < 1.5 < ], < "projectileSpawnOffset": [ < 4, < 1.5 < ], --- > "cannonRotationCenter": [0, 1.5], > "projectileSpawnOffset": [4, 1.5], 37,42c27 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 49c34 < "uniqueId": "ballistafireposition" --- > "uniqueId": {"value": "ballistafireposition"} 60c45 < "entity": "stagehand" --- > "entity": {"key": "stagehand"} 71c56 < "number": 0 --- > "number": {"value": 0} 82,83c67,68 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 89,94c74 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 107,108c87,88 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 122,126c102,105 < "orderBy": "nearest", < "position": "self", < "range": 8, < "type": "cultistknight", < "orderby": "nearest" --- > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 8}, > "type": {"value": "cultistknight"} 134,138c113,116 < "orderBy": "nearest", < "position": "self", < "range": 8, < "type": "cultistarcher", < "orderby": "nearest" --- > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 8}, > "type": {"value": "cultistarcher"} 153,158c131 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 165,166c138,139 < "from": "self", < "to": "firePosition" --- > "from": {"key": "self"}, > "to": {"key": "firePosition"} 177c150 < "vector": "toFirePosition" --- > "vector": {"key": "toFirePosition"} 188,189c161,162 < "first": "fireX", < "second": 0 --- > "first": {"key": "fireX"}, > "second": {"value": 0} 198,203c171 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 210,211c178,179 < "state": "move", < "type": "body" --- > "state": {"value": "move"}, > "type": {"value": "body"} 219,220c187,188 < "direction": -1, < "run": false --- > "direction": {"value": -1}, > "run": {"value": false} 233,238c201 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 245c208 < "number": "angle" --- > "number": {"key": "angle"} 256,257c219,220 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 265c228 < "time": 0.5 --- > "time": {"value": 0.5} 275,280c238 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 287,289c245,247 < "max": "startAngle", < "min": 0, < "ratio": "angleFactor" --- > "max": {"key": "startAngle"}, > "min": {"value": 0}, > "ratio": {"key": "angleFactor"} 300c258 < "transformationGroup": "cannon" --- > "transformationGroup": {"value": "cannon"} 308,310c266,268 < "angle": "angle", < "transformationGroup": "cannon", < "rotationCenter": "" --- > "angle": {"key": "angle"}, > "rotationCenter": {"key": ""}, > "transformationGroup": {"value": "cannon"} 322,323c280,281 < "state": "idle", < "type": "body" --- > "state": {"value": "idle"}, > "type": {"value": "body"} 341,342c299,300 < "state": "idle", < "type": "body" --- > "state": {"value": "idle"}, > "type": {"value": "body"} 350c308 < "number": "angle" --- > "number": {"key": "angle"} 361,362c319,320 < "state": "load", < "type": "cannon" --- > "state": {"value": "load"}, > "type": {"value": "cannon"} 370c328 < "time": 0.5 --- > "time": {"value": 0.5} 384,385c342,343 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 399,403c357,360 < "orderBy": "nearest", < "position": "self", < "range": 8, < "type": "cultistknight", < "orderby": "nearest" --- > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 8}, > "type": {"value": "cultistknight"} 411,415c368,371 < "orderBy": "nearest", < "position": "self", < "range": 8, < "type": "cultistarcher", < "orderby": "nearest" --- > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 8}, > "type": {"value": "cultistarcher"} 425,427c381,383 < "cooldown": 1, < "onFail": false, < "onSuccess": true --- > "cooldown": {"value": 1}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 433,438c389 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 444,449c395 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 456,457c402,403 < "max": "", < "min": "" --- > "max": {"key": ""}, > "min": {"key": ""} 474,475c420,421 < "first": "angle", < "second": "fireAngle" --- > "first": {"key": "angle"}, > "second": {"key": "fireAngle"} 483,484c429,430 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 491,496c437 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 503,504c444,445 < "number": "dt", < "factor": "" --- > "factor": {"key": ""}, > "number": {"key": "dt"} 515,516c456,457 < "addend": "rotation", < "number": "angle" --- > "addend": {"key": "rotation"}, > "number": {"key": "angle"} 526,531c467 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 538c474 < "transformationGroup": "cannon" --- > "transformationGroup": {"value": "cannon"} 546,548c482,484 < "angle": "angle", < "transformationGroup": "cannon", < "rotationCenter": "" --- > "angle": {"key": "angle"}, > "rotationCenter": {"key": ""}, > "transformationGroup": {"value": "cannon"} 569,574c505 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 581,582c512,513 < "vector": "", < "angle": "angle" --- > "angle": {"key": "angle"}, > "vector": {"key": ""} 593,594c524,525 < "first": "spawnOffset", < "second": "" --- > "first": {"key": "spawnOffset"}, > "second": {"key": ""} 605,609c536,537 < "first": "spawnOffset", < "second": [ < "facingDirection", < 1 < ] --- > "first": {"key": "spawnOffset"}, > "second": {"value": ["facingDirection", 1]} 621,626c549 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 633,637c556,557 < "vector": [ < 1, < 0 < ], < "angle": "angle" --- > "angle": {"key": "angle"}, > "vector": {"value": [1, 0]} 648,652c568,569 < "first": "aimVector", < "second": [ < "facingDirection", < 1 < ] --- > "first": {"key": "aimVector"}, > "second": {"value": ["facingDirection", 1]} 665,666c582,583 < "state": "fire", < "type": "cannon" --- > "state": {"value": "fire"}, > "type": {"value": "cannon"} 674c591 < "time": 0.2 --- > "time": {"value": 0.2} 685,694c602,610 < "aimVector": "aimVector", < "angle": 0, < "offset": "spawnOffset", < "position": "self", < "power": 10, < "projectileConfig": {}, < "projectileType": "ballistabolt", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"key": "aimVector"}, > "angle": {"value": 0}, > "offset": {"key": "spawnOffset"}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "ballistabolt"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 702,705c618 < "velocity": [ < 20, < 20 < ] --- > "velocity": {"value": [20, 20]} 717,722c630 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 729c637 < "uniqueId": "missionmanager" --- > "uniqueId": {"value": "missionmanager"} 740,741c648,649 < "entity": "manager", < "message": "wallAttacked" --- > "entity": {"key": "manager"}, > "message": {"value": "wallAttacked"} 767,768c675,676 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 776c684 < "time": 0.5 --- > "time": {"value": 0.5} 786,791c694 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 798,800c701,703 < "max": "startAngle", < "min": 0, < "ratio": "angleFactor" --- > "max": {"key": "startAngle"}, > "min": {"value": 0}, > "ratio": {"key": "angleFactor"} 811c714 < "transformationGroup": "cannon" --- > "transformationGroup": {"value": "cannon"} 819,821c722,724 < "angle": "angle", < "transformationGroup": "cannon", < "rotationCenter": "" --- > "angle": {"key": "angle"}, > "rotationCenter": {"key": ""}, > "transformationGroup": {"value": "cannon"} behaviors\monsters\mission\helicultist.behavior 6,8d5 < "/scripts/actions/math.lua", < "/scripts/actions/monster.lua", < "/scripts/actions/animator.lua", 10c7 < "/monsters/monster.lua", --- > "/scripts/actions/math.lua", 13a11 > "/scripts/actions/animator.lua", 17,20c15 < "projectileOffset": [ < -2, < -0.5 < ] --- > "projectileOffset": [-2, -0.5] 26,31c21 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 38,39c28,29 < "default": true, < "path": "aggressive" --- > "default": {"value": true}, > "path": {"value": "aggressive"} 50c40 < "aggressive": "aggressive" --- > "aggressive": {"key": "aggressive"} 58,59c48,49 < "max": 35, < "min": 25 --- > "max": {"value": 35}, > "min": {"value": 25} 70c60 < "shouldDie": false --- > "shouldDie": {"value": false} 78,79c68,69 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 87,89c77,79 < "targetQueryRange": 80, < "queryTargets": "aggressive", < "targetOnDamage": true --- > "targetQueryRange": {"value": 80}, > "queryTargets": {"key": "aggressive"}, > "targetOnDamage": {"value": true} 103,104c93,94 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 112,113c102,103 < "percentage": 0, < "resource": "health" --- > "percentage": {"value": 0}, > "resource": {"value": "health"} 127,129c117,119 < "cooldown": 10, < "onFail": false, < "onSuccess": true --- > "cooldown": {"value": 10}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 136,137c126,127 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 145,149c135,136 < "velocity": [ < 0, < 0 < ], < "force": 10 --- > "force": {"value": 10}, > "velocity": {"value": [0, 0]} 156,161c143 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 168c150 < "time": 0.5 --- > "time": {"value": 0.5} 176,177c158,159 < "state": "throw", < "type": "body" --- > "state": {"value": "throw"}, > "type": {"value": "body"} 185,186c167,168 < "max": 0.5, < "min": -0.5 --- > "max": {"value": 0.5}, > "min": {"value": -0.5} 197,201c179,180 < "first": "", < "second": [ < "facingDirection", < 1 < ] --- > "first": {"key": ""}, > "second": {"value": ["facingDirection", 1]} 212,222c191,197 < "aimVector": [ < "randXVelocity", < 1 < ], < "offset": "projectileOffset", < "position": "self", < "power": 10, < "projectileType": "cultistmolotov", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"value": ["randXVelocity", 1]}, > "offset": {"key": "projectileOffset"}, > "position": {"key": "self"}, > "projectileType": {"value": "cultistmolotov"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} 230c205 < "time": 0.5 --- > "time": {"value": 0.5} 243,247c218,222 < "wanderTime": 8, < "groundDistance": "flyHeight", < "ceilingDistance": 10, < "xVelocity": 8, < "yVelocity": 12 --- > "wanderTime": {"value": 8}, > "groundDistance": {"key": "flyHeight"}, > "ceilingDistance": {"value": 10}, > "xVelocity": {"value": 8}, > "yVelocity": {"value": 12} 258,263c233 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 270,273c240 < "vector": [ < "facingDirection", < 0 < ] --- > "vector": {"value": ["facingDirection", 0]} 284,285c251,252 < "active": true, < "emitter": "flames" --- > "active": {"value": true}, > "emitter": {"value": "flames"} 293,294c260,261 < "state": "throw", < "type": "body" --- > "state": {"value": "throw"}, > "type": {"value": "body"} 302,303c269,270 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 311,314c278 < "parameters": { < "gravityEnabled": true, < "airFriction": 15 < } --- > "parameters": {"value": {"gravityEnabled": true, "airFriction": 15}} 322,324c286,288 < "angle": "crashAngle", < "velocity": 10, < "force": 100 --- > "angle": {"key": "crashAngle"}, > "force": {"value": 100}, > "velocity": {"value": 10} 340c304 < "emitter": "woodShards" --- > "emitter": {"value": "woodShards"} 348c312 < "shouldDie": true --- > "shouldDie": {"value": true} behaviors\monsters\modular\basemonster.behavior 15,17d14 < "hurtTime": 0.25, < "hurtWaitForGround": true, < "hurtWaitForGroundTime": 0.5, 27d23 < "deathActions": [], 29,31d24 < "hurtState": "hurt", < "hurtEndState": "idle", < "queryTargets": true, 34,35d26 < "tetherDistance": 10, < "stopState": "idle", 42,47c33 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 54,55c40,41 < "default": true, < "path": "aggressive" --- > "default": {"value": true}, > "path": {"value": "aggressive"} 66c52 < "touchDamage": false --- > "touchDamage": {"value": false} 79c65 < "actions": "" --- > "actions": {"key": ""} 88c74 < "number": 0 --- > "number": {"value": 0} 99c85 < "aggressive": "aggressive" --- > "aggressive": {"key": "aggressive"} 107,108c93,94 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 116c102 < "type": "setOwner" --- > "type": {"value": "setOwner"} 132,137c118 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 144c125 < "queryTargets": "aggressive" --- > "queryTargets": {"key": "aggressive"} 152c133 < "name": "hostile" --- > "name": {"value": "hostile"} 161,166c142 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 173c149 < "name": "hostile" --- > "name": {"value": "hostile"} 196c172 < "owner": "ownerOverride" --- > "owner": {"key": "ownerOverride"} 213,214c189,190 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 227c203 < "entity": "target" --- > "entity": {"key": "target"} 241c217 < "actions": "" --- > "actions": {"key": ""} 257,262c233 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 274c245 < "name": "crawling" --- > "name": {"key": "crawling"} 283c254 < "number": 0 --- > "number": {"value": 0} 295,300c266 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 307c273 < "entity": "target" --- > "entity": {"key": "target"} 315c281 < "name": "hostile" --- > "name": {"key": "hostile"} 323c289 < "touchDamage": "" --- > "touchDamage": {"key": ""} 331c297 < "aggressive": true --- > "aggressive": {"value": true} 345,346c311,312 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 354c320 < "name": "hostile" --- > "name": {"key": "hostile"} 362c328 < "entity": "target" --- > "entity": {"key": "target"} 375c341 < "actions": "" --- > "actions": {"key": ""} 396,401c362 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 408c369 < "touchDamage": false --- > "touchDamage": {"value": false} 416c377 < "aggressive": "aggressive" --- > "aggressive": {"key": "aggressive"} 430,435c391 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 442c398 < "name": "attacking" --- > "name": {"key": "attacking"} 450,452c406,408 < "category": "monsterattack", < "stat": "knockbackThreshold", < "amount": "" --- > "amount": {"key": ""}, > "category": {"value": "monsterattack"}, > "stat": {"value": "knockbackThreshold"} 460,461c416,417 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 474c430 < "name": "attacking" --- > "name": {"key": "attacking"} 491c447 < "category": "monsterattack" --- > "category": {"value": "monsterattack"} 506,511c462 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 524c475 < "actions": "" --- > "actions": {"key": ""} 533,538c484 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 545c491 < "name": "hostile" --- > "name": {"key": "hostile"} 553c499 < "name": "foundTarget" --- > "name": {"key": "foundTarget"} 561c507 < "name": "foundTarget" --- > "name": {"value": "foundTarget"} 569c515 < "entity": "target" --- > "entity": {"key": "target"} 577c523 < "actions": "" --- > "actions": {"key": ""} 586,591c532 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 598c539 < "name": "hostile" --- > "name": {"key": "hostile"} 606c547 < "entity": "target" --- > "entity": {"key": "target"} 614c555 < "actions": "" --- > "actions": {"key": ""} 624,625c565,566 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 633c574 < "entity": "target" --- > "entity": {"key": "target"} 641c582 < "name": "hostile" --- > "name": {"key": "hostile"} 654,655c595,596 < "maxLoops": -1, < "untilSuccess": true --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": true} 667c608 < "actions": "" --- > "actions": {"key": ""} 679,684c620 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 696c632 < "name": "hostile" --- > "name": {"key": "hostile"} 705c641 < "actions": "" --- > "actions": {"key": ""} 715,716c651,652 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 724c660 < "entity": "target" --- > "entity": {"key": "target"} 732c668 < "name": "hostile" --- > "name": {"key": "hostile"} 745c681 < "actions": "" --- > "actions": {"key": ""} 756,758c692,694 < "cooldown": 3, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 3}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 765,766c701,702 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 779c715 < "name": "hostile" --- > "name": {"key": "hostile"} 788c724 < "entity": "target" --- > "entity": {"key": "target"} 801,805c737,741 < "entity": "target", < "range": "", < "xRange": "", < "yRange": "", < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "range": {"key": ""}, > "xRange": {"key": ""}, > "yRange": {"key": ""} 819c755 < "actions": "" --- > "actions": {"key": ""} 830,835c766 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 847c778 < "name": "hostile" --- > "name": {"key": "hostile"} 856,857c787,788 < "actions": "", < "dynamic": true --- > "actions": {"key": ""}, > "dynamic": {"value": true} behaviors\monsters\modular\monsterdeath.behavior 15c15 < "actions": "" --- > "actions": {"key": ""} behaviors\monsters\modular\targeting.behavior 2a3 > "description": "", 8a10 > "/scripts/actions/notification.lua", 15,19c17 < "targetEntityTypes": [ < "player", < "monster", < "npc" < ], --- > "targetEntityTypes": ["player", "monster", "npc"], 24c22,24 < "targetQueryCooldown": 1 --- > "targetQueryCooldown": 1, > "targetOnNotification": true, > "targetNotificationRange": 15 31,32c31,32 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 45,46c45,46 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 54,55c54,55 < "list": "outOfSightTargets", < "type": "entity" --- > "list": {"key": "outOfSightTargets"}, > "type": {"value": "entity"} 73c73 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 87c87,90 < "entity": "filterItem", --- > "entity": {"key": "filterItem"}, > "list": {"key": "targets"} > }, > "output": { 100c103 < "list": "outOfSightTargets" --- > "list": {"key": "outOfSightTargets"} 114c117 < "time": "" --- > "time": {"value": ""} 121c124,125 < "parameters": { --- > "parameters": {}, > "output": { 140,145c144 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 151c150,151 < "parameters": { --- > "parameters": {}, > "output": { 165,166c165,166 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 174c174 < "shouldRun": "" --- > "shouldRun": {"key": ""} 187,189c187,189 < "cooldown": "", < "onFail": true, < "onSuccess": true --- > "cooldown": {"key": ""}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 196,199c196,199 < "entityTypes": "", < "orderBy": "nearest", < "range": "", < "withoutEntity": "self" --- > "entityTypes": {"key": ""}, > "orderBy": {"value": "nearest"}, > "range": {"key": ""}, > "withoutEntity": {"key": "self"} 211,212c211,212 < "list": "queriedTargets", < "type": "entity" --- > "list": {"key": "queriedTargets"}, > "type": {"value": "entity"} 220a221,228 > "title": "isValidTarget", > "type": "action", > "name": "isValidTarget", > "parameters": { > "entity": {"key": "filterItem"} > } > }, > { 225c233,245 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} > } > }, > { > "title": "broadcastNotification", > "type": "action", > "name": "broadcastNotification", > "parameters": { > "entityTypes": {"value": ["monster"]}, > "position": {"key": "self"}, > "range": {"key": ""}, > "target": {"key": "filterItem"}, > "type": {"value": "notifyFindTarget"} 238,239c258,262 < "list": "newTargets", < "entity": "filterItem" --- > "entity": {"key": "filterItem"}, > "list": {"key": "newTargets"} > }, > "output": { > "list": "newTargets" 254c277 < "shouldRun": "" --- > "shouldRun": {"key": ""} 271a295,354 > "title": "broadcastNotification", > "type": "action", > "name": "broadcastNotification", > "parameters": { > "entityTypes": {"value": ["monster"]}, > "position": {"key": "self"}, > "range": {"key": ""}, > "target": {"key": "damageSource"}, > "type": {"value": "notifyFindTarget"} > } > }, > { > "title": "listPush", > "type": "action", > "name": "listPush", > "parameters": { > "entity": {"key": "damageSource"}, > "list": {"key": "newTargets"} > }, > "output": { > "list": "newTargets" > } > } > ] > } > }, > { > "title": "optional", > "type": "decorator", > "name": "optional", > "parameters": { > "shouldRun": {"key": ""} > }, > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "receivedNotification", > "type": "action", > "name": "receivedNotification", > "parameters": { > "type": {"value": "notifyFindTarget"} > }, > "output": { > "source": "notificationSource", > "target": "notificationTarget" > } > }, > { > "title": "entityInSight", > "type": "action", > "name": "entityInSight", > "parameters": { > "entity": {"key": "notificationSource"} > } > }, > { 276,277c359,363 < "list": "newTargets", < "entity": "damageSource" --- > "entity": {"key": "notificationTarget"}, > "list": {"key": "newTargets"} > }, > "output": { > "list": "newTargets" 291,292c377,378 < "list": "newTargets", < "type": "entity" --- > "list": {"key": "newTargets"}, > "type": {"value": "entity"} 310,311c396,397 < "list": "targets", < "entity": "filterItem" --- > "entity": {"key": "filterItem"}, > "list": {"key": "targets"} 319,320c405,406 < "list": "outOfSightTargets", < "entity": "filterItem" --- > "entity": {"key": "filterItem"}, > "list": {"key": "outOfSightTargets"} 327,332c413 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 339c420 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 353,359c434 < "list": "targets" < }, < "output": { < "entity": "", < "position": "", < "number": "", < "vector": "" --- > "list": {"key": "targets"} 367c442 < "name": "foundTarget" --- > "name": {"value": "foundTarget"} 377c452,455 < "entity": "filterItem", --- > "entity": {"key": "filterItem"}, > "list": {"key": "targets"} > }, > "output": { 394,395c472,473 < "list": "targets", < "type": "entity" --- > "list": {"key": "targets"}, > "type": {"value": "entity"} 408c486 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 416c494 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 435c513 < "owner": "" --- > "owner": {"key": ""} 444,448c522,523 < "entity": "filterItem", < "types": [ < "player", < "monster" < ] --- > "entity": {"key": "filterItem"}, > "types": {"value": ["player", "monster"]} 456c531 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 466,467c541,542 < "entity": "filterItem", < "range": "" --- > "entity": {"key": "filterItem"}, > "range": {"key": ""} 480c555 < "shouldRun": "" --- > "shouldRun": {"key": ""} 498c573 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 511c586,589 < "entity": "filterItem", --- > "entity": {"key": "filterItem"}, > "list": {"key": "outOfSightTargets"} > }, > "output": { 535c613 < "list": "targets" --- > "list": {"key": "targets"} 546c624 < "list": "outOfSightTargets" --- > "list": {"key": "outOfSightTargets"} 562,563c640,641 < "type": "entity", < "key": "target" --- > "key": {"value": "target"}, > "type": {"value": "entity"} behaviors\monsters\modular\actions\aggrohop.behavior 5d4 < "/scripts/actions/monster.lua", 7,8d5 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 19c16 < "resetRotation" : false --- > "resetRotation": false 25,30c22 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 42,43c34,35 < "state": "", < "type": "body" --- > "state": {"value": ""}, > "type": {"value": "body"} 57c49 < "shouldRun": "" --- > "shouldRun": {"key": ""} 64c56 < "entity": "target" --- > "entity": {"key": "target"} 79c71 < "shouldRun": "" --- > "shouldRun": {"key": ""} 113c105 < "shouldRun": "" --- > "shouldRun": {"key": ""} 120c112 < "transformationGroup": "body" --- > "transformationGroup": {"value": "body"} 130c122 < "sound": "" --- > "sound": {"value": ""} 138,139c130,131 < "x": 0, < "y": "" --- > "x": {"value": 0}, > "y": {"key": ""} 147c139 < "time": "" --- > "time": {"value": ""} behaviors\monsters\modular\actions\animate.behavior 2a3 > "description": "", 4d4 < "/scripts/actions/monster.lua", 6,7d5 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 19,24c17 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 31,32c24,25 < "state": "", < "type": "" --- > "state": {"value": ""}, > "type": {"value": ""} 40c33 < "time": "" --- > "time": {"value": ""} behaviors\monsters\modular\actions\blink.behavior 2a3 > "description": "", 4,7c5 < "/scripts/actions/monster.lua", < "/scripts/actions/animator.lua", < "/scripts/actions/entity.lua", < "/monsters/monster.lua" --- > "/scripts/actions/animator.lua" 15,16c13,14 < "state": "blink", < "type": "body" --- > "state": {"value": "blink"}, > "type": {"value": "body"} behaviors\monsters\modular\actions\charge.behavior 9a10 > "/scripts/behavior/bdata.lua", 21d21 < "onGround": true, 26,29c26,27 < "aimDirection": [ < 1, < 0 < ], --- > "inaccuracy": 0, > "aimDirection": [1, 0], 31d28 < "knockbackThreshold": 0, 35,38c32 < "wallCrashVelocity": [ < -10, < 20 < ], --- > "wallCrashVelocity": [-10, 20], 45,50c39 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 57,60c46,49 < "wallCollisionCheck": "", < "windupState": "", < "windupStateType": "", < "skillName": "" --- > "windupState": {"value": ""}, > "wallCollisionCheck": {"key": ""}, > "windupStateType": {"value": ""}, > "skillName": {"value": ""} 68,69c57,58 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 77c66,69 < "name": "attacking" --- > "bool": {"value": true} > }, > "output": { > "bool": "attacking" 84,89c76 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 102c89 < "shouldRun": "" --- > "shouldRun": {"key": ""} 105,115c92,146 < "title": "entityDirection", < "type": "action", < "name": "entityDirection", < "parameters": { < "entity": "self", < "target": "target" < }, < "output": { < "direction": "direction", < "vector": "aimDirection" < } --- > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "entityDirection", > "type": "action", > "name": "entityDirection", > "parameters": { > "entity": {"key": "self"}, > "target": {"key": "target"} > }, > "output": { > "direction": "direction", > "vector": "aimDirection" > } > }, > { > "title": "multiply", > "type": "action", > "name": "multiply", > "parameters": { > "factor": {"key": ""}, > "number": {"value": -1} > }, > "output": { > "result": "minInaccuracy" > } > }, > { > "title": "random", > "type": "action", > "name": "random", > "parameters": { > "max": {"key": ""}, > "min": {"key": "minInaccuracy"} > }, > "output": { > "number": "fuzzAngle" > } > }, > { > "title": "vecRotate", > "type": "action", > "name": "vecRotate", > "parameters": { > "angle": {"key": "fuzzAngle"}, > "vector": {"key": "aimDirection"} > }, > "output": { > "vector": "aimDirection" > } > } > ] 123,127c154,155 < "first": "", < "second": [ < "facingDirection", < 1 < ] --- > "first": {"key": ""}, > "second": {"value": ["facingDirection", 1]} 140,141c168,169 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 148,153c176 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 165,166c188,189 < "state": "", < "type": "" --- > "state": {"value": ""}, > "type": {"value": ""} 175,176c198,199 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 204c227 < "vector": "aimDirection" --- > "vector": {"key": "aimDirection"} 216,237c239,249 < "title": "optional", < "type": "decorator", < "name": "optional", < "parameters": { < "shouldRun": "" < }, < "child": { < "title": "parallel", < "type": "composite", < "name": "parallel", < "parameters": { < "fail": -1, < "success": -1 < }, < "children": [ < { < "title": "faceDirection", < "type": "action", < "name": "faceDirection", < "parameters": { < "direction": 1 < } --- > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "optional", > "type": "decorator", > "name": "optional", > "parameters": { > "shouldRun": {"key": ""} 239,242c251,254 < { < "title": "add", < "type": "action", < "name": "add", --- > "child": { > "title": "parallel", > "type": "composite", > "name": "parallel", 244,245c256,257 < "addend": "aimAngle", < "number": "" --- > "fail": {"value": -1}, > "success": {"value": -1} 247,258c259,289 < "output": { < "result": "rotationAngle" < } < }, < { < "title": "rotateBody", < "type": "action", < "name": "rotateBody", < "parameters": { < "angle": "rotationAngle", < "transformationGroup": "body" < } --- > "children": [ > { > "title": "faceDirection", > "type": "action", > "name": "faceDirection", > "parameters": { > "direction": {"value": 1} > } > }, > { > "title": "add", > "type": "action", > "name": "add", > "parameters": { > "addend": {"key": "aimAngle"}, > "number": {"key": ""} > }, > "output": { > "result": "rotationAngle" > } > }, > { > "title": "rotateBody", > "type": "action", > "name": "rotateBody", > "parameters": { > "angle": {"key": "rotationAngle"}, > "transformationGroup": {"value": "body"} > } > } > ] 260,261c291,319 < ] < } --- > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "breakVector", > "type": "action", > "name": "breakVector", > "parameters": { > "vector": {"key": "aimDirection"} > }, > "output": { > "x": "chargeX" > } > }, > { > "title": "faceDirection", > "type": "action", > "name": "faceDirection", > "parameters": { > "direction": {"key": "chargeX"} > } > } > ] > } > ] 269,271c327,329 < "angle": "aimAngle", < "velocity": "", < "force": "" --- > "angle": {"key": "aimAngle"}, > "force": {"key": ""}, > "velocity": {"key": ""} 295c353 < "shouldRun": "" --- > "shouldRun": {"key": ""} 301,306c359 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 318,323c371 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 336c384 < "direction": "facingDirection" --- > "direction": {"key": "facingDirection"} 349c397 < "shouldRun": "" --- > "shouldRun": {"key": ""} 355,360c403 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 367,371c410,411 < "first": "", < "second": [ < "facingDirection", < 1 < ] --- > "first": {"key": ""}, > "second": {"value": ["facingDirection", 1]} 382c422 < "velocity": "wallCrashVelocity" --- > "velocity": {"key": "wallCrashVelocity"} 396,397c436,437 < "resource": "stunned", < "amount": 0.25 --- > "amount": {"value": 0.25}, > "resource": {"value": "stunned"} 410,415c450 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 449c484 < "sound": "" --- > "sound": {"value": ""} 463c498 < "emitter": "" --- > "emitter": {"value": ""} 475c510 < "time": "" --- > "time": {"value": ""} 491,492c526,527 < "winddownState": "", < "winddownStateType": "" --- > "winddownState": {"value": ""}, > "winddownStateType": {"value": ""} behaviors\monsters\modular\actions\fire.behavior 3c3 < "description": "", --- > "description": null, 5,6d4 < "/scripts/actions/animator.lua", < "/scripts/actions/time.lua", 8,9d5 < "/scripts/actions/position.lua", < "/scripts/actions/projectiles.lua", 10a7,8 > "/scripts/actions/position.lua", > "/scripts/actions/movement.lua", 12c10,13 < "/scripts/actions/movement.lua" --- > "/scripts/actions/animator.lua", > "/scripts/actions/time.lua", > "/scripts/behavior/bdata.lua", > "/scripts/actions/projectiles.lua" 16,19c17 < "aimDirection": [ < 1, < 0 < ], --- > "aimDirection": [1, 0], 21d18 < "power": 5, 25,28c22,23 < "fireOffset": [ < 0, < 0 < ], --- > "fireOffset": [0, 0], > "fireOffsets": [], 40,43c35 < "rotatedOffset": [ < 0, < 0 < ], --- > "rotationCenter": [0, 0], 46c38,40 < "fireParticleBurst": "" --- > "fireParticleBurst": "", > "holdAim": false, > "damageRepeatGroup": "monsterfire" 52,57c46 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 64,65c53,54 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": 1} 69c58 < "title": "sequence", --- > "title": "parallel", 71c60 < "name": "sequence", --- > "name": "parallel", 73,76c62,63 < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" --- > "fail": {"value": 1}, > "success": {"value": -1} 80,93c67,69 < "title": "action-windup", < "type": "module", < "name": "action-windup", < "parameters": { < "faceTarget": true, < "windupState": "", < "windupStateType": "", < "skillName": "" < } < }, < { < "title": "succeeder", < "type": "decorator", < "name": "succeeder", --- > "title": "selector", > "type": "composite", > "name": "selector", 95,101c71,154 < "child": { < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", < "parameters": { < "state": "", < "type": "" --- > "children": [ > { > "title": "optional", > "type": "decorator", > "name": "optional", > "parameters": { > "shouldRun": {"key": ""} > }, > "child": { > "title": "hasFlag", > "type": "action", > "name": "hasFlag", > "parameters": { > "name": {"key": "holdAim"} > } > } > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "vecMultiply", > "type": "action", > "name": "vecMultiply", > "parameters": { > "first": {"key": ""}, > "second": {"value": ["facingDirection", 1]} > }, > "output": { > "vector": "rotationCenter" > } > }, > { > "title": "vecRotate", > "type": "action", > "name": "vecRotate", > "parameters": { > "angle": {"key": "heading"}, > "vector": {"key": "rotationCenter"} > }, > "output": { > "vector": "rotationCenter" > } > }, > { > "title": "offsetPosition", > "type": "action", > "name": "offsetPosition", > "parameters": { > "offset": {"key": "rotationCenter"}, > "position": {"key": "self"} > }, > "output": { > "position": "origin" > } > }, > { > "title": "entityAngle", > "type": "action", > "name": "entityAngle", > "parameters": { > "entity": {"key": "target"}, > "heading": {"key": "heading"}, > "position": {"key": "origin"} > }, > "output": { > "angle": "entityAngle" > } > }, > { > "title": "entityPosition", > "type": "action", > "name": "entityPosition", > "parameters": { > "entity": {"key": "target"} > }, > "output": { > "position": "targetPosition" > } > } > ] 103,122c156 < } < }, < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": "" < } < }, < { < "title": "setNumber", < "type": "action", < "name": "setNumber", < "parameters": { < "number": 0 < }, < "output": { < "number": "shots" < } --- > ] 125,140c159,195 < "title": "repeater", < "type": "decorator", < "name": "repeater", < "parameters": { < "maxLoops": "", < "untilSuccess": false < }, < "child": { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" --- > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "action-windup", > "type": "module", > "name": "action-windup", > "parameters": { > "windupState": {"value": ""}, > "faceTarget": {"key": ""}, > "skillName": {"value": ""} > } > }, > { > "title": "succeeder", > "type": "decorator", > "name": "succeeder", > "parameters": {}, > "child": { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "state": {"value": ""}, > "type": {"value": ""} > } > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": {"value": ""} > } 142,164c197,255 < "children": [ < { < "title": "selector", < "type": "composite", < "name": "selector", < "parameters": {}, < "children": [ < { < "title": "optional", < "type": "decorator", < "name": "optional", < "parameters": { < "shouldRun": "" < }, < "child": { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" --- > { > "title": "setNumber", > "type": "action", > "name": "setNumber", > "parameters": { > "number": {"value": 0} > }, > "output": { > "number": "shots" > } > }, > { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": {"value": -1}, > "success": {"value": -1} > }, > "children": [ > { > "title": "controlFlag", > "type": "action", > "name": "controlFlag", > "parameters": { > "bool": {"value": true} > }, > "output": { > "bool": "holdAim" > } > }, > { > "title": "repeater", > "type": "decorator", > "name": "repeater", > "parameters": { > "maxLoops": {"key": ""}, > "untilSuccess": {"value": false} > }, > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "succeeder", > "type": "decorator", > "name": "succeeder", > "parameters": {}, > "child": { > "title": "playSound", > "type": "action", > "name": "playSound", > "parameters": { > "loops": {"value": 0}, > "sound": {"value": ""} > } > } 166,168c257,263 < "children": [ < { < "title": "distance", --- > { > "title": "succeeder", > "type": "decorator", > "name": "succeeder", > "parameters": {}, > "child": { > "title": "burstParticleEmitter", 170c265 < "name": "distance", --- > "name": "burstParticleEmitter", 172,173c267,321 < "from": "sourcePosition", < "to": "targetPosition" --- > "emitter": {"value": ""} > } > } > }, > { > "title": "listClear", > "type": "action", > "name": "listClear", > "parameters": {}, > "output": { > "list": "fireOffsets" > } > }, > { > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "listGet", > "type": "action", > "name": "listGet", > "parameters": { > "list": {"key": ""} > } > }, > { > "title": "each", > "type": "decorator", > "name": "each", > "parameters": { > "list": {"key": ""}, > "type": {"value": "vec2"} > }, > "child": { > "title": "listPush", > "type": "action", > "name": "listPush", > "parameters": { > "list": {"key": "fireOffsets"}, > "vec2": {"key": "eachItem"} > }, > "output": { > "list": "fireOffsets" > } > } > } > ] 175,176c323,332 < "output": { < "vector": "aimVector" --- > { > "title": "listPush", > "type": "action", > "name": "listPush", > "parameters": { > "vec2": {"key": ""} > }, > "output": { > "list": "fireOffsets" > } 177a334,342 > ] > }, > { > "title": "each", > "type": "decorator", > "name": "each", > "parameters": { > "list": {"key": "fireOffsets"}, > "type": {"value": "vec2"} 179,182c344,347 < { < "title": "succeeder", < "type": "decorator", < "name": "succeeder", --- > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", 184,189c349,486 < "child": { < "title": "optional", < "type": "decorator", < "name": "optional", < "parameters": { < "shouldRun": "" --- > "children": [ > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "vecMultiply", > "type": "action", > "name": "vecMultiply", > "parameters": { > "first": {"key": ""}, > "second": {"value": ["facingDirection", 1]} > }, > "output": { > "vector": "aimVector" > } > }, > { > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "optional", > "type": "decorator", > "name": "optional", > "parameters": { > "shouldRun": {"key": ""} > }, > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "distance", > "type": "action", > "name": "distance", > "parameters": { > "from": {"key": "origin"}, > "to": {"key": "targetPosition"} > }, > "output": { > "vector": "toTarget" > } > }, > { > "title": "vecMultiply", > "type": "action", > "name": "vecMultiply", > "parameters": { > "first": {"key": "toTarget"}, > "second": {"value": ["facingDirection", 1]} > }, > "output": { > "vector": "toTarget" > } > }, > { > "title": "vecAngle", > "type": "action", > "name": "vecAngle", > "parameters": { > "vector": {"key": "toTarget"} > }, > "output": { > "angle": "targetAngle" > } > }, > { > "title": "vecRotate", > "type": "action", > "name": "vecRotate", > "parameters": { > "angle": {"key": "targetAngle"}, > "vector": {"key": "eachItem"} > }, > "output": { > "vector": "fireOffset" > } > } > ] > } > }, > { > "title": "setVector", > "type": "action", > "name": "setVector", > "parameters": { > "vector": {"key": "eachItem"} > }, > "output": { > "vector": "fireOffset" > } > } > ] > }, > { > "title": "vecMultiply", > "type": "action", > "name": "vecMultiply", > "parameters": { > "first": {"key": "fireOffset"}, > "second": {"value": ["facingDirection", 1]} > }, > "output": { > "vector": "fireOffset" > } > }, > { > "title": "vecAdd", > "type": "action", > "name": "vecAdd", > "parameters": { > "first": {"key": "fireOffset"}, > "second": {"key": "rotationCenter"} > }, > "output": { > "vector": "fireOffset" > } > }, > { > "title": "offsetPosition", > "type": "action", > "name": "offsetPosition", > "parameters": { > "offset": {"key": "fireOffset"}, > "position": {"key": "self"} > }, > "output": { > "position": "sourcePosition" > } > } > ] 191c488,605 < "child": { --- > { > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "optional", > "type": "decorator", > "name": "optional", > "parameters": { > "shouldRun": {"key": ""} > }, > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "distance", > "type": "action", > "name": "distance", > "parameters": { > "from": {"key": "origin"}, > "to": {"key": "targetPosition"} > }, > "output": { > "vector": "aimVector" > } > }, > { > "title": "succeeder", > "type": "decorator", > "name": "succeeder", > "parameters": {}, > "child": { > "title": "optional", > "type": "decorator", > "name": "optional", > "parameters": { > "shouldRun": {"key": ""} > }, > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "projectileGravityMultiplier", > "type": "action", > "name": "projectileGravityMultiplier", > "parameters": { > "projectileName": {"value": ""} > }, > "output": { > "gravityMultiplier": "gravityMultiplier" > } > }, > { > "title": "projectileAimVector", > "type": "action", > "name": "projectileAimVector", > "parameters": { > "collisionCheck": {"value": false}, > "fromPosition": {"key": "origin"}, > "gravityMultiplier": {"key": "gravityMultiplier"}, > "speed": {"key": ""}, > "toPosition": {"key": "targetPosition"}, > "useHighArc": {"key": ""} > }, > "output": { > "aimVector": "aimVector" > } > } > ] > } > } > } > ] > } > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "vecMultiply", > "type": "action", > "name": "vecMultiply", > "parameters": { > "first": {"key": ""}, > "second": {"value": ["facingDirection", 1]} > }, > "output": { > "vector": "aimVector" > } > }, > { > "title": "vecRotate", > "type": "action", > "name": "vecRotate", > "parameters": { > "angle": {"key": "heading"}, > "vector": {"key": "aimVector"} > }, > "output": { > "vector": "aimVector" > } > } > ] > } > ] > }, > { 195,200c609 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 203c612,624 < "title": "projectileGravityMultiplier", --- > "title": "multiply", > "type": "action", > "name": "multiply", > "parameters": { > "factor": {"value": -1}, > "number": {"key": ""} > }, > "output": { > "result": "minInaccuracy" > } > }, > { > "title": "random", 205c626 < "name": "projectileGravityMultiplier", --- > "name": "random", 207c628,629 < "projectileName": "" --- > "max": {"key": ""}, > "min": {"key": "minInaccuracy"} 210c632 < "gravityMultiplier": "gravityMultiplier" --- > "number": "angleOffset" 214c636 < "title": "projectileAimVector", --- > "title": "vecRotate", 216c638 < "name": "projectileAimVector", --- > "name": "vecRotate", 218,223c640,641 < "fromPosition": "sourcePosition", < "toPosition": "targetPosition", < "speed": "", < "collisionCheck": false, < "useHighArc": "", < "gravityMultiplier": "gravityMultiplier" --- > "angle": {"key": "angleOffset"}, > "vector": {"key": "aimVector"} 226c644 < "aimVector": "aimVector" --- > "vector": "aimVector" 229a648,665 > }, > { > "title": "spawnProjectile", > "type": "action", > "name": "spawnProjectile", > "parameters": { > "aimVector": {"key": "aimVector"}, > "angle": {"value": 0}, > "damageRepeatGroup": {"key": ""}, > "offset": {"key": "fireOffset"}, > "position": {"key": "self"}, > "projectileConfig": {"value": ""}, > "projectileType": {"value": ""}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false}, > "uniqueRepeatGroup": {"value": true} > } 231,255d666 < } < } < ] < } < }, < { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, < "children": [ < { < "title": "vecMultiply", < "type": "action", < "name": "vecMultiply", < "parameters": { < "first": "", < "second": [ < "facingDirection", < 1 257,259d667 < }, < "output": { < "vector": "aimVector" 263c671 < "title": "vecRotate", --- > "title": "add", 265c673 < "name": "vecRotate", --- > "name": "add", 267,268c675,676 < "vector": "aimVector", < "angle": "heading" --- > "addend": {"value": 1}, > "number": {"key": "shots"} 271c679 < "vector": "aimVector" --- > "result": "shots" 273,419c681,688 < } < ] < } < ] < }, < { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, < "children": [ < { < "title": "multiply", < "type": "action", < "name": "multiply", < "parameters": { < "number": "", < "factor": -1 < }, < "output": { < "result": "minInaccuracy" < } < }, < { < "title": "random", < "type": "action", < "name": "random", < "parameters": { < "max": "", < "min": "minInaccuracy" < }, < "output": { < "number": "angleOffset" < } < }, < { < "title": "vecRotate", < "type": "action", < "name": "vecRotate", < "parameters": { < "vector": "aimVector", < "angle": "angleOffset" < }, < "output": { < "vector": "aimVector" < } < } < ] < }, < { < "title": "succeeder", < "type": "decorator", < "name": "succeeder", < "parameters": {}, < "child": { < "title": "playSound", < "type": "action", < "name": "playSound", < "parameters": { < "sound": "", < "loops": 0 < } < } < }, < { < "title": "succeeder", < "type": "decorator", < "name": "succeeder", < "parameters": {}, < "child": { < "title": "burstParticleEmitter", < "type": "action", < "name": "burstParticleEmitter", < "parameters": { < "emitter": "" < } < } < }, < { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, < "children": [ < { < "title": "spawnProjectile", < "type": "action", < "name": "spawnProjectile", < "parameters": { < "aimVector": "aimVector", < "angle": 0, < "offset": "fireOffset", < "position": "self", < "power": "", < "projectileConfig": "", < "projectileType": "", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false, < "damageRepeatGroup": "monsterfire", < "uniqueRepeatGroup": true < } < }, < { < "title": "add", < "type": "action", < "name": "add", < "parameters": { < "addend": 1, < "number": "shots" < }, < "output": { < "result": "shots" < } < }, < { < "title": "succeeder", < "type": "decorator", < "name": "succeeder", < "parameters": {}, < "child": { < "title": "selector", < "type": "composite", < "name": "selector", < "parameters": {}, < "children": [ < { < "title": "gte", < "type": "action", < "name": "gte", < "parameters": { < "first": "shots", < "second": "" < } < }, < { < "title": "sequence", --- > }, > { > "title": "succeeder", > "type": "decorator", > "name": "succeeder", > "parameters": {}, > "child": { > "title": "selector", 421,427c690,691 < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "name": "selector", > "parameters": {}, 430c694 < "title": "greaterThan", --- > "title": "gte", 432c696 < "name": "greaterThan", --- > "name": "gte", 434,435c698,699 < "first": "", < "second": 1 --- > "first": {"key": "shots"}, > "second": {"key": ""} 439,444c703,725 < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": "" < } --- > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "greaterThan", > "type": "action", > "name": "greaterThan", > "parameters": { > "first": {"key": ""}, > "second": {"value": 1} > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": {"value": ""} > } > } > ] 448,449c729,730 < ] < } --- > } > ] 451,566c732,733 < ] < } < ] < } < } < ] < }, < { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, < "children": [ < { < "title": "vecMultiply", < "type": "action", < "name": "vecMultiply", < "parameters": { < "first": "", < "second": [ < "facingDirection", < 1 < ] < }, < "output": { < "vector": "fireOffset" < } < }, < { < "title": "vecRotate", < "type": "action", < "name": "vecRotate", < "parameters": { < "vector": "fireOffset", < "angle": "heading" < }, < "output": { < "vector": "fireOffset" < } < }, < { < "title": "entityPosition", < "type": "action", < "name": "entityPosition", < "parameters": { < "entity": "target" < }, < "output": { < "position": "targetPosition" < } < }, < { < "title": "offsetPosition", < "type": "action", < "name": "offsetPosition", < "parameters": { < "offset": "fireOffset", < "position": "self" < }, < "output": { < "position": "sourcePosition" < } < } < ] < }, < { < "title": "succeeder", < "type": "decorator", < "name": "succeeder", < "parameters": {}, < "child": { < "title": "optional", < "type": "decorator", < "name": "optional", < "parameters": { < "shouldRun": "" < }, < "child": { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, < "children": [ < { < "title": "vecRotate", < "type": "action", < "name": "vecRotate", < "parameters": { < "vector": [ < 1, < 0 < ], < "angle": "heading" < }, < "output": { < "vector": "headingDirection" < } < }, < { < "title": "faceEntity", < "type": "action", < "name": "faceEntity", < "parameters": { < "entity": "target", < "headingDirection": "headingDirection" < } --- > } > ] 569,582d735 < } < } < }, < { < "title": "succeeder", < "type": "decorator", < "name": "succeeder", < "parameters": {}, < "child": { < "title": "optional", < "type": "decorator", < "name": "optional", < "parameters": { < "shouldRun": "" 584,593c737,749 < "child": { < "title": "parallel", < "type": "composite", < "name": "parallel", < "parameters": { < "fail": 1, < "success": -1 < }, < "children": [ < { --- > { > "title": "succeeder", > "type": "decorator", > "name": "succeeder", > "parameters": {}, > "child": { > "title": "optional", > "type": "decorator", > "name": "optional", > "parameters": { > "shouldRun": {"key": ""} > }, > "child": { 597,602c753 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 605,618d755 < "title": "entityAngle", < "type": "action", < "name": "entityAngle", < "parameters": { < "entity": "target", < "facingDirection": "facingDirection", < "heading": "heading", < "position": "sourcePosition" < }, < "output": { < "angle": "entityAngle" < } < }, < { 623,651c760,761 < "vector": "", < "angle": "entityAngle" < }, < "output": { < "vector": "rotatedOffset" < } < }, < { < "title": "vecMultiply", < "type": "action", < "name": "vecMultiply", < "parameters": { < "first": "rotatedOffset", < "second": [ < "facingDirection", < 1 < ] < }, < "output": { < "vector": "rotatedOffset" < } < }, < { < "title": "vecAdd", < "type": "action", < "name": "vecAdd", < "parameters": { < "first": "fireOffset", < "second": "rotatedOffset" --- > "angle": {"key": "heading"}, > "vector": {"value": [1, 0]} 654c764 < "vector": "fireOffset" --- > "vector": "headingDirection" 658c768 < "title": "offsetPosition", --- > "title": "faceEntity", 660c770 < "name": "offsetPosition", --- > "name": "faceEntity", 662,666c772,773 < "offset": "fireOffset", < "position": "sourcePosition" < }, < "output": { < "position": "sourcePosition" --- > "entity": {"key": "target"}, > "headingDirection": {"key": "headingDirection"} 670,679d776 < }, < { < "title": "transform", < "type": "action", < "name": "transform", < "parameters": { < "group": "aim", < "rotation": "entityAngle", < "rotationCenter": "" < } 681c778 < ] --- > } 683c780,812 < } --- > ] > }, > { > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "optional", > "type": "decorator", > "name": "optional", > "parameters": { > "shouldRun": {"key": ""} > }, > "child": { > "title": "transform", > "type": "action", > "name": "transform", > "parameters": { > "group": {"value": "aim"}, > "rotation": {"key": "entityAngle"}, > "rotationCenter": {"key": ""} > } > } > }, > { > "title": "runner", > "type": "action", > "name": "runner", > "parameters": {} > } > ] 692,693c821 < "winddownState": "", < "winddownStateType": "" --- > "winddownState": {"value": ""} 706c834 < "shouldRun": "" --- > "shouldRun": {"key": ""} 713c841 < "transformationGroup": "aim" --- > "transformationGroup": {"value": "aim"} behaviors\monsters\modular\actions\ghostsparkle.behavior 10,11c10 < "behindGroundEmitter": "behindGroundEmitter", < "exitEmitter": "groundBurstEmitter" --- > "behindGroundEmitter": "behindGroundEmitter" 17,22c16 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 29c23 < "position": "self" --- > "position": {"key": "self"} 37,38c31,32 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 46c40 < "emitter": "" --- > "emitter": {"value": ""} 53,58c47 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 65c54 < "emitter": "" --- > "emitter": {"value": ""} 84c73 < "position": "self" --- > "position": {"key": "self"} 101c90 < "emitter": "" --- > "emitter": {"value": ""} behaviors\monsters\modular\actions\globaltag.behavior 5,8c5 < "/scripts/actions/monster.lua", < "/scripts/actions/animator.lua", < "/scripts/actions/entity.lua", < "/monsters/monster.lua" --- > "/scripts/actions/animator.lua" 19,20c16,17 < "type": "", < "tag": "" --- > "tag": {"value": ""}, > "type": {"value": ""} behaviors\monsters\modular\actions\hop.behavior 19,20d18 < "bounceOffWalls": true, < "randomDirection": false, 23,24c21 < "hopControlForce": 10, < "knockbackThreshold": 15 --- > "hopControlForce": 10 30,35c27 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 51,52c43,44 < "maxLoops": "", < "untilSuccess": false --- > "maxLoops": {"key": ""}, > "untilSuccess": {"value": false} 58,63c50 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 70,71c57,58 < "number": 1, < "factor": "" --- > "factor": {"key": ""}, > "number": {"value": 1} 101,106c88 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 118,119c100,101 < "entity": "self", < "target": "target" --- > "entity": {"key": "self"}, > "target": {"key": "target"} 142c124 < "direction": "facingDirection" --- > "direction": {"key": "facingDirection"} 150c132 < "shouldRun": "" --- > "shouldRun": {"key": ""} 157,158c139,140 < "number": "facingDirection", < "factor": -1 --- > "factor": {"value": -1}, > "number": {"key": "facingDirection"} 170,171c152,153 < "number": 1, < "factor": "" --- > "factor": {"key": ""}, > "number": {"value": 1} 187,188c169,170 < "number": "facingDirection", < "factor": "" --- > "factor": {"key": ""}, > "number": {"key": "facingDirection"} 199c181 < "direction": "facingDirection" --- > "direction": {"key": "facingDirection"} 207,208c189,190 < "state": "hop", < "type": "body" --- > "state": {"value": "hop"}, > "type": {"value": "body"} 216c198 < "time": "" --- > "time": {"value": ""} 224,225c206,207 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 233c215,218 < "name": "attacking" --- > "bool": {"value": true} > }, > "output": { > "bool": "attacking" 240,245c225 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 251,256c231 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 263c238 < "statName": "jumpModifier" --- > "statName": {"value": "jumpModifier"} 274,278c249,250 < "first": [ < "xSpeed", < "ySpeed" < ], < "second": "jumpModifier" --- > "first": {"value": ["xSpeed", "ySpeed"]}, > "number": {"key": "jumpModifier"} 289,293c261,262 < "first": [ < "xSpeed", < "ySpeed" < ], < "second": "speedModifier" --- > "first": {"value": ["xSpeed", "ySpeed"]}, > "second": {"key": "speedModifier"} 306c275 < "velocity": "hopVelocity" --- > "velocity": {"key": "hopVelocity"} 314c283 < "time": 0.25 --- > "time": {"value": 0.25} 322,323c291,292 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 331,332c300,301 < "velocity": "xSpeed", < "force": "" --- > "force": {"key": ""}, > "velocity": {"key": "xSpeed"} 350,355c319 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 362,363c326,327 < "entity": "self", < "target": "target" --- > "entity": {"key": "self"}, > "target": {"key": "target"} 379,380c343,344 < "first": "targetYDir", < "second": 0 --- > "first": {"key": "targetYDir"}, > "second": {"value": 0} 402,407c366 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 429,430c388,389 < "first": "yVelocity", < "second": 0 --- > "first": {"key": "yVelocity"}, > "second": {"value": 0} 439,440c398,399 < "state": "fall", < "type": "body" --- > "state": {"value": "fall"}, > "type": {"value": "body"} 471,472c430,431 < "state": "land", < "type": "body" --- > "state": {"value": "land"}, > "type": {"value": "body"} 480c439 < "time": "" --- > "time": {"value": ""} 488c447 < "time": "" --- > "time": {"value": ""} behaviors\monsters\modular\actions\invulnerable.behavior 25,30c25 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 42,43c37,38 < "state": "", < "type": "body" --- > "state": {"value": ""}, > "type": {"value": "body"} 52c47 < "time": "" --- > "time": {"value": ""} 65,66c60,61 < "state": "", < "type": "body" --- > "state": {"value": ""}, > "type": {"value": "body"} 75,76c70,71 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 84,85c79,80 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 93,94c88,89 < "name": "", < "duration": 0.5 --- > "duration": {"value": 0.5}, > "name": {"value": ""} 107c102 < "actions": "" --- > "actions": {"key": ""} 123,128c118 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 135,136c125,126 < "first": "", < "second": 0 --- > "first": {"key": ""}, > "second": {"value": 0} 144c134 < "time": "" --- > "time": {"value": ""} 169,170c159,160 < "state": "", < "type": "body" --- > "state": {"value": ""}, > "type": {"value": "body"} 179c169 < "time": "" --- > "time": {"value": ""} 187c177 < "name": "" --- > "name": {"value": ""} behaviors\monsters\modular\actions\leap.behavior 25d24 < "knockbackThreshold": 15, 34,39c33 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 46c40 < "entity": "target" --- > "entity": {"key": "target"} 56,61c50 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 68c57 < "statName": "jumpModifier" --- > "statName": {"value": "jumpModifier"} 79,80c68,69 < "number": "", < "factor": "jumpModifier" --- > "factor": {"key": "jumpModifier"}, > "number": {"key": ""} 91,92c80,81 < "addend": "", < "number": "speedModifier" --- > "addend": {"key": ""}, > "number": {"key": "speedModifier"} 105,109c94,98 < "collisionCheck": "", < "fromPosition": "self", < "speed": "speed", < "toPosition": "targetPosition", < "useHighArc": "" --- > "collisionCheck": {"key": ""}, > "fromPosition": {"key": "self"}, > "speed": {"key": "speed"}, > "toPosition": {"key": "targetPosition"}, > "useHighArc": {"key": ""} 120,121c109,110 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 133,138c122 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 145c129 < "entity": "target" --- > "entity": {"key": "target"} 156,160c140,144 < "collisionCheck": "", < "fromPosition": "self", < "speed": "speed", < "toPosition": "targetPosition", < "useHighArc": "" --- > "collisionCheck": {"key": ""}, > "fromPosition": {"key": "self"}, > "speed": {"key": "speed"}, > "toPosition": {"key": "targetPosition"}, > "useHighArc": {"key": ""} 174,176c158,160 < "windupState": "", < "windupStateType": "", < "skillName": "" --- > "windupState": {"value": ""}, > "windupStateType": {"value": ""}, > "skillName": {"value": ""} 186,187c170,171 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 195c179,182 < "name": "attacking" --- > "bool": {"value": true} > }, > "output" : { > "bool" : "attacking" 202,207c189 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 214c196 < "touchDamage": true --- > "touchDamage": {"value": true} 222,223c204,205 < "first": "aimVector", < "second": "speed" --- > "first": {"key": "aimVector"}, > "number": {"key": "speed"} 234c216 < "velocity": "leapVelocity" --- > "velocity": {"key": "leapVelocity"} 247,248c229,230 < "state": "", < "type": "" --- > "state": {"value": ""}, > "type": {"value": ""} 257,258c239,240 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 270,275c252 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 282,283c259,260 < "entity": "self", < "target": "target" --- > "entity": {"key": "self"}, > "target": {"key": "target"} 299,300c276,277 < "first": "targetYDir", < "second": 0 --- > "first": {"key": "targetYDir"}, > "second": {"value": 0} 317,322c294 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 329c301 < "time": "" --- > "time": {"value": ""} 349,352c321 < "dirVector": [ < 1, < 0 < ] --- > "dirVector": {"value": [1, 0]} 360,363c329 < "dirVector": [ < -1, < 0 < ] --- > "dirVector": {"value": [-1, 0]} 371,374c337 < "dirVector": [ < 0, < 1 < ] --- > "dirVector": {"value": [0, 1]} 382,385c345 < "dirVector": [ < 0, < -1 < ] --- > "dirVector": {"value": [0, -1]} 405,410c365 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 431,432c386,387 < "first": "yVelocity", < "second": 0 --- > "first": {"key": "yVelocity"}, > "second": {"value": 0} 446,447c401,402 < "state": "", < "type": "" --- > "state": {"value": ""}, > "type": {"value": ""} 471c426 < "touchDamage": "" --- > "touchDamage": {"key": ""} 483,484c438,439 < "winddownState": "", < "winddownStateType": "" --- > "winddownState": {"value": ""}, > "winddownStateType": {"value": ""} 489c444 < } \ No newline at end of file --- > } behaviors\monsters\modular\actions\projectile.behavior 2a3 > "description": "", 8,11c9 < "aimDirection": [ < 1, < 0 < ], --- > "aimDirection": [1, 0], 13d10 < "power": 5, 16,19c13 < "fireOffset": [ < 0, < 0 < ], --- > "fireOffset": [0, 0], 27,28c21,22 < "maxLoops": "", < "untilSuccess": false --- > "maxLoops": {"key": ""}, > "untilSuccess": {"value": false} 34,39c28 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 46,47c35,36 < "number": "", < "factor": -1 --- > "factor": {"value": -1}, > "number": {"key": ""} 58,59c47,48 < "max": "", < "min": "minInaccuracy" --- > "max": {"key": ""}, > "min": {"key": "minInaccuracy"} 70,71c59,60 < "vector": "", < "angle": "angleOffset" --- > "angle": {"key": "angleOffset"}, > "vector": {"key": ""} 82,86c71,72 < "first": "", < "second": [ < "facingDirection", < 1 < ] --- > "first": {"key": ""}, > "second": {"value": ["facingDirection", 1]} 97,101c83,84 < "first": "aimVector", < "second": [ < "facingDirection", < 1 < ] --- > "first": {"key": "aimVector"}, > "second": {"value": ["facingDirection", 1]} 112,120c95,102 < "aimVector": "aimVector", < "offset": "fireOffset", < "position": "self", < "power": "", < "projectileConfig": "", < "projectileType": "", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false --- > "aimVector": {"key": "aimVector"}, > "offset": {"key": "fireOffset"}, > "position": {"key": "self"}, > "projectileConfig": {"value": ""}, > "projectileType": {"value": ""}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} behaviors\monsters\modular\actions\spawncompanions.behavior 15,19c15,16 < "position": "self", < "offset": [ < 0, < 0 < ], --- > "position": null, > "offset": [0, 0], 27,28c24,25 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 36,37c33,34 < "list": "companions", < "type": "entity" --- > "list": {"key": "companions"}, > "type": {"value": "entity"} 44c41 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 53,55c50,52 < "cooldown": "", < "onFail": true, < "onSuccess": true --- > "cooldown": {"key": ""}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 61,66c58 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 73c65 < "list": "companions" --- > "list": {"key": "companions"} 90,91c82,83 < "first": "companionCount", < "second": "" --- > "first": {"key": "companionCount"}, > "second": {"key": ""} 98,103c90 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 110,114c97,98 < "first": "", < "second": [ < "facingDirection", < 1 < ] --- > "first": {"key": ""}, > "second": {"value": ["facingDirection", 1]} 125,126c109,110 < "offset": "spawnOffset", < "position": "" --- > "offset": {"key": "spawnOffset"}, > "position": {"key": ""} 137,138c121,122 < "position": "spawnPosition", < "type": "" --- > "position": {"key": "spawnPosition"}, > "type": {"value": ""} 149,150c133,137 < "entity": "spawnedMonster", < "list": "companions" --- > "entity": {"key": "spawnedMonster"}, > "list": {"key": "companions"} > }, > "output" : { > "list" : "companions" 158,160c145,147 < "type": "setOwner", < "entity": "spawnedMonster", < "target": "self" --- > "entity": {"key": "spawnedMonster"}, > "target": {"key": "self"}, > "type": {"value": "setOwner"} 172c159 < } \ No newline at end of file --- > } behaviors\monsters\modular\actions\stop.behavior 2a3 > "description": "", 14,18c15,16 < "velocity": [ < 0, < 0 < ], < "force": "" --- > "force": {"key": ""}, > "velocity": {"value": [0, 0]} behaviors\monsters\modular\actions\suicide.behavior 7,9c7 < "parameters": { < "windupState": "suicidewindup" < }, --- > "parameters": {}, 14,19c12 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 32,33c25,26 < "resource": "health", < "amount": 0 --- > "amount": {"value": 0}, > "resource": {"value": "health"} behaviors\monsters\modular\actions\swoop.behavior 25,26d24 < "xControlForce": 30, < "knockbackThreshold": 15, 33,38c31 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 45,46c38,39 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 53,58c46 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 65c53 < "entity": "target" --- > "entity": {"key": "target"} 76,81c64,69 < "fromPosition": "self", < "toPosition": "targetPosition", < "speed": "", < "collisionCheck": "", < "useHighArc": "", < "gravityMultiplier": "" --- > "collisionCheck": {"key": ""}, > "fromPosition": {"key": "self"}, > "gravityMultiplier": {"key": ""}, > "speed": {"key": ""}, > "toPosition": {"key": "targetPosition"}, > "useHighArc": {"key": ""} 92,93c80,81 < "entity": "self", < "target": "target" --- > "entity": {"key": "self"}, > "target": {"key": "target"} 109,110c97,98 < "first": "yDirection", < "second": 0 --- > "first": {"key": "yDirection"}, > "second": {"value": 0} 121,122c109,110 < "windupState": "", < "skillName": "" --- > "windupState": {"value": ""}, > "skillName": {"value": ""} 132,133c120,121 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 141c129,132 < "name": "attacking" --- > "bool": {"value": true} > }, > "output" : { > "bool" : "attacking" 148,153c139 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 159,164c145 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 171c152 < "statName": "jumpModifier" --- > "statName": {"value": "jumpModifier"} 182,183c163,164 < "number": "", < "factor": "jumpModifier" --- > "factor": {"key": "jumpModifier"}, > "number": {"key": ""} 194,195c175,176 < "addend": "", < "number": "speedModifier" --- > "addend": {"key": ""}, > "number": {"key": "speedModifier"} 208,209c189,190 < "first": "aimVector", < "second": "speed" --- > "first": {"key": "aimVector"}, > "number": {"key": "speed"} 220,221c201,202 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 233,238c214 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 245c221 < "number": "" --- > "number": {"key": ""} 256,260c232,233 < "parameters": { < "airFriction": 0, < "gravityEnabled": true, < "gravityMultiplier": "gravityMultiplier" < } --- > "parameters": {"value": {"airFriction": 0, "gravityEnabled": true}}, > "gravityMultiplier" : {"key" : "gravityMultiplier"} 276,281c249 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 288c256 < "velocity": "swoopVelocity" --- > "velocity": {"key": "swoopVelocity"} 301,302c269,270 < "state": "", < "type": "body" --- > "state": {"value": ""}, > "type": {"value": "body"} 311c279 < "time": "" --- > "time": {"value": ""} 331,334c299 < "dirVector": [ < 1, < 0 < ] --- > "dirVector": {"value": [1, 0]} 342,345c307 < "dirVector": [ < -1, < 0 < ] --- > "dirVector": {"value": [-1, 0]} 353,356c315 < "dirVector": [ < 0, < 1 < ] --- > "dirVector": {"value": [0, 1]} 364,367c323 < "dirVector": [ < 0, < -1 < ] --- > "dirVector": {"value": [0, -1]} 382,387c338 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 394,395c345,346 < "first": "", < "second": 0 --- > "first": {"key": ""}, > "second": {"value": 0} 403c354 < "time": "" --- > "time": {"value": ""} 431c382 < "winddownState": "" --- > "winddownState": {"value": ""} 436c387 < } \ No newline at end of file --- > } behaviors\monsters\modular\actions\winddown.behavior 5d4 < "/scripts/actions/monster.lua", 7,8c6 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", --- > "/scripts/actions/monster.lua", 16d13 < "rotateToTarget": false, 23,28c20 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 40,41c32,33 < "state": "", < "type": "" --- > "state": {"value": ""}, > "type": {"value": ""} 50c42 < "skillName": "" --- > "skillName": {"value": ""} 58,59c50,51 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 73,75c65,67 < "angle": "aimAngle", < "velocity": 0, < "force": "" --- > "angle": {"key": "aimAngle"}, > "force": {"key": ""}, > "velocity": {"value": 0} 83,87c75,76 < "velocity": [ < 0, < 0 < ], < "force": "" --- > "force": {"key": ""}, > "velocity": {"value": [0, 0]} 97c86 < "time": "" --- > "time": {"value": ""} behaviors\monsters\modular\actions\windup.behavior 40,41c40,41 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 49,50c49,50 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 57,62c57 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 80,81c75,76 < "first": "", < "second": 0 --- > "first": {"key": ""}, > "second": {"value": 0} 90,92c85,87 < "entity": "target", < "yRange": "", < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "yRange": {"key": ""} 113,114c108,109 < "first": "", < "second": 0 --- > "first": {"key": ""}, > "second": {"value": 0} 123,125c118,120 < "entity": "target", < "xRange": "", < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "xRange": {"key": ""} 146,147c141,142 < "first": "", < "second": 0 --- > "first": {"key": ""}, > "second": {"value": 0} 156,158c151,153 < "entity": "target", < "range": "", < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "range": {"key": ""} 173,175c168,170 < "entity": "target", < "range": "", < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "range": {"key": ""} 190c185 < "shouldRun": "" --- > "shouldRun": {"key": ""} 219c214 < "shouldRun": "" --- > "shouldRun": {"key": ""} 236,241c231 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 280,285c270 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 297c282 < "shouldRun": "" --- > "shouldRun": {"key": ""} 304c289 < "direction": "facingDirection" --- > "direction": {"key": "facingDirection"} 319c304 < "shouldRun": "" --- > "shouldRun": {"key": ""} 331c316 < "entity": "target" --- > "entity": {"key": "target"} 347,348c332,333 < "state": "", < "type": "" --- > "state": {"value": ""}, > "type": {"value": ""} 362,363c347,348 < "name": "", < "duration": "" --- > "duration": {"key": ""}, > "name": {"value": ""} 372c357 < "skillName": "" --- > "skillName": {"value": ""} 380,381c365,366 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 394,398c379,380 < "velocity": [ < 0, < 0 < ], < "force": "" --- > "force": {"key": ""}, > "velocity": {"value": [0, 0]} 412c394 < "shouldRun": "" --- > "shouldRun": {"key": ""} 418,423c400 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 430,431c407,408 < "entity": "self", < "target": "target" --- > "entity": {"key": "self"}, > "target": {"key": "target"} 447c424 < "shouldRun": "" --- > "shouldRun": {"key": ""} 453,458c430 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 465c437 < "vector": "aimVector" --- > "vector": {"key": "aimVector"} 476,477c448,449 < "addend": "aimAngle", < "number": "" --- > "addend": {"key": "aimAngle"}, > "number": {"key": ""} 488,489c460,461 < "angle": "aimAngle", < "rate": 0 --- > "angle": {"key": "aimAngle"}, > "rate": {"value": 0} 510c482 < "shouldRun": "" --- > "shouldRun": {"key": ""} 516,521c488 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 528,532c495,496 < "vector": [ < 1, < 0 < ], < "angle": "heading" --- > "angle": {"key": "heading"}, > "vector": {"value": [1, 0]} 543,544c507,508 < "entity": "target", < "headingDirection": "headingDirection" --- > "entity": {"key": "target"}, > "headingDirection": {"key": "headingDirection"} 556c520 < "time": "" --- > "time": {"value": ""} behaviors\monsters\modular\movement\crawlapproach.behavior 22,27c22 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 34,35c29,30 < "state": "", < "type": "body" --- > "state": {"value": ""}, > "type": {"value": "body"} 48,53c43 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 60,62c50,52 < "entity": "target", < "heading": "heading", < "position": "self" --- > "entity": {"key": "target"}, > "heading": {"key": "heading"}, > "position": {"key": "self"} 74,78c64,65 < "vector": [ < 1, < 0 < ], < "angle": "targetAngle" --- > "angle": {"key": "targetAngle"}, > "vector": {"value": [1, 0]} 89c76 < "vector": "toTarget" --- > "vector": {"key": "toTarget"} 105,106c92,93 < "first": "toTargetY", < "second": 0 --- > "first": {"key": "toTargetY"}, > "second": {"value": 0} 117,118c104,105 < "entity": "self", < "target": "target" --- > "entity": {"key": "self"}, > "target": {"key": "target"} 131,132c118,119 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 150,155c137 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 162c144 < "entity": "target" --- > "entity": {"key": "target"} 175,180c157 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 187,189c164,166 < "entity": "target", < "heading": "heading", < "position": "self" --- > "entity": {"key": "target"}, > "heading": {"key": "heading"}, > "position": {"key": "self"} 201,205c178,179 < "vector": [ < 1, < 0 < ], < "angle": "targetAngle" --- > "angle": {"key": "targetAngle"}, > "vector": {"value": [1, 0]} 216c190 < "vector": "toTarget" --- > "vector": {"key": "toTarget"} 232,233c206,207 < "first": "toTargetY", < "second": 0 --- > "first": {"key": "toTargetY"}, > "second": {"value": 0} 244,245c218,219 < "entity": "self", < "target": "target" --- > "entity": {"key": "self"}, > "target": {"key": "target"} 261c235 < "direction": "targetDirection" --- > "direction": {"key": "targetDirection"} 269,270c243,244 < "direction": "targetDirection", < "run": "" --- > "direction": {"key": "targetDirection"}, > "run": {"key": ""} 273,274c247,248 < "headingDirection": "headingDirection", < "headingAngle": "heading" --- > "headingAngle": "heading", > "headingDirection": "headingDirection" 282c256,259 < "name": "crawling" --- > "bool": {"value": true} > }, > "output" : { > "bool" : "crawling" 296c273 < "shouldRun": "" --- > "shouldRun": {"key": ""} 303,304c280,281 < "group": "body", < "rotation": "heading" --- > "group": {"value": "body"}, > "rotation": {"key": "heading"} 312,317c289 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 324c296 < "transformationGroup": "body" --- > "transformationGroup": {"value": "body"} 332,333c304,305 < "angle": "heading", < "transformationGroup": "body" --- > "angle": {"key": "heading"}, > "transformationGroup": {"value": "body"} 344c316 < } \ No newline at end of file --- > } behaviors\monsters\modular\movement\crawlidle.behavior 11,12c11 < "stopForce": 0, < "idleTime": 6 --- > "stopForce": 0 19,20c18,19 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 37,41c36,37 < "velocity": [ < 0, < 0 < ], < "force": "" --- > "force": {"key": ""}, > "velocity": {"value": [0, 0]} 49,50c45,46 < "group": "body", < "rotation": "heading" --- > "group": {"value": "body"}, > "rotation": {"key": "heading"} 58c54,57 < "name": "crawling" --- > "bool": {"value": true} > }, > "output" : { > "bool" : "crawling" 69c68 < } \ No newline at end of file --- > } behaviors\monsters\modular\movement\crawlwander.behavior 12,19c12,13 < "wanderTime": [ < 1, < 4 < ], < "idleTime": [ < 3, < 6 < ], --- > "wanderTime": [1, 4], > "idleTime": [3, 6], 30,31c24,25 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 51,53c45,47 < "cooldown": "", < "onFail": true, < "onSuccess": true --- > "cooldown": {"key": ""}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 59,64c53 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 80c69 < "direction": "crawlDirection" --- > "direction": {"key": "crawlDirection"} 88,89c77,78 < "state": "", < "type": "body" --- > "state": {"value": ""}, > "type": {"value": "body"} 97,98c86,87 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 106c95 < "direction": "crawlDirection" --- > "direction": {"key": "crawlDirection"} 122c111 < "time": "" --- > "time": {"value": ""} 133,136c122 < "velocity": [ < 0, < 0 < ] --- > "velocity": {"value": [0, 0]} 146,151c132 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 158,159c139,140 < "state": "", < "type": "body" --- > "state": {"value": ""}, > "type": {"value": "body"} 167,168c148,149 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 185,189c166,167 < "velocity": [ < 0, < 0 < ], < "force": "" --- > "force": {"key": ""}, > "velocity": {"value": [0, 0]} 197c175 < "direction": "crawlDirection" --- > "direction": {"key": "crawlDirection"} 217c195,198 < "name": "crawling" --- > "bool": {"value": true} > }, > "output" : { > "bool" : "crawling" 231c212 < "shouldRun": "" --- > "shouldRun": {"key": ""} 238,239c219,220 < "group": "body", < "rotation": "heading" --- > "group": {"value": "body"}, > "rotation": {"key": "heading"} 247,252c228 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 259c235 < "transformationGroup": "body" --- > "transformationGroup": {"value": "body"} 267,268c243,244 < "angle": "heading", < "transformationGroup": "body" --- > "angle": {"key": "heading"}, > "transformationGroup": {"value": "body"} 277c253 < } \ No newline at end of file --- > } behaviors\monsters\modular\movement\emerge-fly.behavior 2a3 > "description": "", 10,15c11 < "collisionArea": [ < -2, < -2, < 2, < 2 < ], --- > "collisionArea": [-2, -2, 2, 2], 25,30c21 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 37c28 < "position": "self" --- > "position": {"key": "self"} 45,47c36,38 < "cooldown": 3, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 3}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 54,57c45,48 < "centerPosition": "self", < "collisionArea": "", < "lerpStep": "", < "maxDistance": "" --- > "centerPosition": {"key": "self"}, > "collisionArea": {"value": ""}, > "lerpStep": {"key": ""}, > "maxDistance": {"key": ""} 69,70c60,61 < "position": "airPosition", < "tolerance": 1 --- > "position": {"key": "airPosition"}, > "tolerance": {"value": 1} 78,79c69,70 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 87,91c78,79 < "velocity": [ < 0, < 0 < ], < "force": "" --- > "force": {"key": ""}, > "velocity": {"value": [0, 0]} 99c87 < "time": "" --- > "time": {"value": ""} behaviors\monsters\modular\movement\flyapproach.behavior 2a3 > "description": "", 17d17 < "stopForce": 500, 22,25d21 < "targetOffset": [ < 0, < 0 < ], 30c26,27 < "excludeLiquidIds": [] --- > "excludeLiquidIds": [], > "idleState": "" 33c30 < "title": "sequence", --- > "title": "parallel", 35c32 < "name": "sequence", --- > "name": "parallel", 37,40c34,35 < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" --- > "fail": {"value": 1}, > "success": {"value": 1} 44,55c39,45 < "title": "succeeder", < "type": "decorator", < "name": "succeeder", < "parameters": {}, < "child": { < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", < "parameters": { < "state": "", < "type": "body" < } --- > "title": "animate", > "type": "action", > "name": "animate", > "parameters": { > "fallback": {"value": ""}, > "state": {"value": ""}, > "type": {"value": "body"} 63,64c53,54 < "fail": 1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": -1} 68c58 < "title": "parallel", --- > "title": "sequence", 70,74c60,61 < "name": "parallel", < "parameters": { < "fail": -1, < "success": -1 < }, --- > "name": "sequence", > "parameters": {}, 77,79c64,66 < "title": "sequence", < "type": "composite", < "name": "sequence", --- > "title": "entityPosition", > "type": "action", > "name": "entityPosition", 81,84c68 < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" --- > "entity": {"key": "target"} 86,128c70,111 < "children": [ < { < "title": "entityPosition", < "type": "action", < "name": "entityPosition", < "parameters": { < "entity": "target" < }, < "output": { < "position": "targetPosition" < } < }, < { < "title": "setNumber", < "type": "action", < "name": "setNumber", < "parameters": { < "number": "" < }, < "output": { < "number": "range" < } < }, < { < "title": "listClear", < "type": "action", < "name": "listClear", < "parameters": { < "list": "targetPositions" < } < }, < { < "title": "repeater", < "type": "decorator", < "name": "repeater", < "parameters": { < "maxLoops": -1, < "untilSuccess": true < }, < "child": { < "title": "sequence", < "type": "composite", < "name": "sequence", --- > "output": { > "position": "targetPosition" > } > }, > { > "title": "setNumber", > "type": "action", > "name": "setNumber", > "parameters": { > "number": {"key": ""} > }, > "output": { > "number": "range" > } > }, > { > "title": "listClear", > "type": "action", > "name": "listClear", > "parameters": {}, > "output": { > "list": "targetPositions" > } > }, > { > "title": "repeater", > "type": "decorator", > "name": "repeater", > "parameters": { > "maxLoops": {"value": -1}, > "untilSuccess": {"value": true} > }, > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "setNumber", > "type": "action", > "name": "setNumber", 130,133c113 < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" --- > "number": {"key": ""} 135,145c115,130 < "children": [ < { < "title": "setNumber", < "type": "action", < "name": "setNumber", < "parameters": { < "number": "" < }, < "output": { < "number": "angle" < } --- > "output": { > "number": "angle" > } > }, > { > "title": "succeeder", > "type": "decorator", > "name": "succeeder", > "parameters": {}, > "child": { > "title": "repeater", > "type": "decorator", > "name": "repeater", > "parameters": { > "maxLoops": {"value": 10}, > "untilSuccess": {"value": false} 147,150c132,135 < { < "title": "succeeder", < "type": "decorator", < "name": "succeeder", --- > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", 152,158c137,148 < "child": { < "title": "repeater", < "type": "decorator", < "name": "repeater", < "parameters": { < "maxLoops": 10, < "untilSuccess": false --- > "children": [ > { > "title": "add", > "type": "action", > "name": "add", > "parameters": { > "addend": {"value": -0.2}, > "number": {"key": "angle"} > }, > "output": { > "result": "angle" > } 160,163c150,153 < "child": { < "title": "sequence", < "type": "composite", < "name": "sequence", --- > { > "title": "vecRotate", > "type": "action", > "name": "vecRotate", 165,168c155,156 < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" --- > "angle": {"key": "angle"}, > "vector": {"value": [0, "range"]} 170,279c158,174 < "children": [ < { < "title": "add", < "type": "action", < "name": "add", < "parameters": { < "addend": -0.2, < "number": "angle" < }, < "output": { < "result": "angle" < } < }, < { < "title": "vecRotate", < "type": "action", < "name": "vecRotate", < "parameters": { < "vector": [ < 0, < "range" < ], < "angle": "angle" < }, < "output": { < "vector": "targetOffset" < } < }, < { < "title": "inverter", < "type": "decorator", < "name": "inverter", < "parameters": {}, < "child": { < "title": "lineTileCollision", < "type": "action", < "name": "lineTileCollision", < "parameters": { < "position": "targetPosition", < "offset": "targetOffset", < "collisionType": [ < "Null", < "Block", < "Dynamic" < ] < } < } < }, < { < "title": "offsetPosition", < "type": "action", < "name": "offsetPosition", < "parameters": { < "offset": "targetOffset", < "position": "targetPosition" < }, < "output": { < "position": "offsetTargetPosition" < } < }, < { < "title": "distance", < "type": "action", < "name": "distance", < "parameters": { < "from": "self", < "to": "offsetTargetPosition" < }, < "output": { < "vector": "toTarget", < "magnitude": "targetDistance" < } < }, < { < "title": "inverter", < "type": "decorator", < "name": "inverter", < "parameters": {}, < "child": { < "title": "lineTileCollision", < "type": "action", < "name": "lineTileCollision", < "parameters": { < "position": "self", < "offset": "toTarget", < "collisionType": [ < "Null", < "Block", < "Dynamic" < ] < } < } < }, < { < "title": "greaterThan", < "type": "action", < "name": "greaterThan", < "parameters": { < "first": "targetDistance", < "second": "" < } < }, < { < "title": "listPush", < "type": "action", < "name": "listPush", < "parameters": { < "list": "targetPositions", < "position": "offsetTargetPosition" < } --- > "output": { > "vector": "targetOffset" > } > }, > { > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { > "title": "lineTileCollision", > "type": "action", > "name": "lineTileCollision", > "parameters": { > "collisionType": {"value": ["Null", "Block", "Dynamic"]}, > "offset": {"key": "targetOffset"}, > "position": {"key": "targetPosition"} 281,308c176,238 < ] < } < } < }, < { < "title": "add", < "type": "action", < "name": "add", < "parameters": { < "addend": -1, < "number": "range" < }, < "output": { < "result": "range" < } < }, < { < "title": "inverter", < "type": "decorator", < "name": "inverter", < "parameters": {}, < "child": { < "title": "greaterThan", < "type": "action", < "name": "greaterThan", < "parameters": { < "first": "maxRange", < "second": "" --- > } > }, > { > "title": "offsetPosition", > "type": "action", > "name": "offsetPosition", > "parameters": { > "offset": {"key": "targetOffset"}, > "position": {"key": "targetPosition"} > }, > "output": { > "position": "offsetTargetPosition" > } > }, > { > "title": "distance", > "type": "action", > "name": "distance", > "parameters": { > "from": {"key": "self"}, > "to": {"key": "offsetTargetPosition"} > }, > "output": { > "magnitude": "targetDistance", > "vector": "toTarget" > } > }, > { > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { > "title": "lineTileCollision", > "type": "action", > "name": "lineTileCollision", > "parameters": { > "collisionType": {"value": ["Null", "Block", "Dynamic"]}, > "offset": {"key": "toTarget"}, > "position": {"key": "self"} > } > } > }, > { > "title": "greaterThan", > "type": "action", > "name": "greaterThan", > "parameters": { > "first": {"key": "targetDistance"}, > "second": {"key": ""} > } > }, > { > "title": "listPush", > "type": "action", > "name": "listPush", > "parameters": { > "list": {"key": "targetPositions"}, > "position": {"key": "offsetTargetPosition"} > }, > "output" : { > "list" : "targetPositions" > } 310c240,267 < } --- > ] > } > } > }, > { > "title": "add", > "type": "action", > "name": "add", > "parameters": { > "addend": {"value": -1}, > "number": {"key": "range"} > }, > "output": { > "result": "range" > } > }, > { > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { > "title": "greaterThan", > "type": "action", > "name": "greaterThan", > "parameters": { > "first": {"key": "maxRange"}, > "second": {"key": ""} 312c269 < ] --- > } 314c271,302 < }, --- > ] > } > }, > { > "title": "listShuffle", > "type": "action", > "name": "listShuffle", > "parameters": { > "list": {"key": "targetPositions"} > }, > "output": { > "list": "targetPositions" > } > }, > { > "title": "offsetPosition", > "type": "action", > "name": "offsetPosition", > "parameters": { > "offset": {"value": [0, 0]}, > "position": {"key": "targetPosition"} > }, > "output": { > "position": "lastTargetPosition" > } > }, > { > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ 316c304 < "title": "listShuffle", --- > "title": "listGet", 318c306 < "name": "listShuffle", --- > "name": "listGet", 320c308 < "list": "targetPositions" --- > "list": {"key": "targetPositions"} 323c311 < "list": "targetPositions" --- > "position": "movePosition" 331,335c319,342 < "offset": [ < 0, < 0 < ], < "position": "targetPosition" --- > "offset": {"value": [0, 0]}, > "position": {"key": "targetPosition"} > }, > "output": { > "position": "movePosition" > } > } > ] > }, > { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": {"value": 1}, > "success": {"value": -1} > }, > "children": [ > { > "title": "entityPosition", > "type": "action", > "name": "entityPosition", > "parameters": { > "entity": {"key": "target"} 338c345 < "position": "lastTargetPosition" --- > "position": "targetPosition" 342c349 < "title": "selector", --- > "title": "sequence", 344c351 < "name": "selector", --- > "name": "sequence", 348c355 < "title": "listGet", --- > "title": "distance", 350c357 < "name": "listGet", --- > "name": "distance", 352c359,360 < "list": "targetPositions" --- > "from": {"key": "targetPosition"}, > "to": {"key": "lastTargetPosition"} 355c363 < "position": "movePosition" --- > "magnitude": "targetMoveDistance" 359,370c367,378 < "title": "offsetPosition", < "type": "action", < "name": "offsetPosition", < "parameters": { < "offset": [ < 0, < 0 < ], < "position": "targetPosition" < }, < "output": { < "position": "movePosition" --- > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { > "title": "greaterThan", > "type": "action", > "name": "greaterThan", > "parameters": { > "first": {"key": "targetMoveDistance"}, > "second": {"value": 2} > } 372,383c380 < } < ] < }, < { < "title": "parallel", < "type": "composite", < "name": "parallel", < "parameters": { < "fail": 1, < "success": -1 < }, < "children": [ --- > }, 385c382 < "title": "entityPosition", --- > "title": "distance", 387c384 < "name": "entityPosition", --- > "name": "distance", 389c386,387 < "entity": "target" --- > "from": {"key": "self"}, > "to": {"key": "movePosition"} 392c390,391 < "position": "targetPosition" --- > "magnitude": "moveDistance", > "vector": "toMovePosition" 396,473c395,406 < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, < "children": [ < { < "title": "distance", < "type": "action", < "name": "distance", < "parameters": { < "from": "targetPosition", < "to": "lastTargetPosition" < }, < "output": { < "magnitude": "targetMoveDistance" < } < }, < { < "title": "inverter", < "type": "decorator", < "name": "inverter", < "parameters": {}, < "child": { < "title": "greaterThan", < "type": "action", < "name": "greaterThan", < "parameters": { < "first": "targetMoveDistance", < "second": 2 < } < } < }, < { < "title": "distance", < "type": "action", < "name": "distance", < "parameters": { < "from": "self", < "to": "movePosition" < }, < "output": { < "vector": "toMovePosition", < "magnitude": "moveDistance" < } < }, < { < "title": "inverter", < "type": "decorator", < "name": "inverter", < "parameters": {}, < "child": { < "title": "lineTileCollision", < "type": "action", < "name": "lineTileCollision", < "parameters": { < "position": "self", < "offset": "toMovePosition", < "collisionType": [ < "Null", < "Block", < "Dynamic" < ] < } < } < }, < { < "title": "greaterThan", < "type": "action", < "name": "greaterThan", < "parameters": { < "first": "moveDistance", < "second": 1 < } --- > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { > "title": "lineTileCollision", > "type": "action", > "name": "lineTileCollision", > "parameters": { > "collisionType": {"value": ["Null", "Block", "Dynamic"]}, > "offset": {"key": "toMovePosition"}, > "position": {"key": "self"} 475c408 < ] --- > } 478c411 < "title": "runner", --- > "title": "greaterThan", 480,481c413,417 < "name": "runner", < "parameters": {} --- > "name": "greaterThan", > "parameters": { > "first": {"key": "moveDistance"}, > "second": {"value": 1} > } 483a420,425 > }, > { > "title": "runner", > "type": "action", > "name": "runner", > "parameters": {} 486c428,436 < }, --- > } > ] > }, > { > "title": "dynamic", > "type": "composite", > "name": "dynamic", > "parameters": {}, > "children": [ 488c438 < "title": "dynamic", --- > "title": "parallel", 490,491c440,444 < "name": "dynamic", < "parameters": {}, --- > "name": "parallel", > "parameters": { > "fail": {"value": 1}, > "success": {"value": -1} > }, 494,535c447,449 < "title": "parallel", < "type": "composite", < "name": "parallel", < "parameters": { < "fail": 1, < "success": -1 < }, < "children": [ < { < "title": "lineLiquidCollision", < "type": "action", < "name": "lineLiquidCollision", < "parameters": { < "endLine": "movePosition", < "startLine": "self", < "excludeLiquidIds": "" < } < }, < { < "title": "controlApproachVelocity", < "type": "action", < "name": "controlApproachVelocity", < "parameters": { < "velocity": [ < 0, < 0 < ], < "force": 20 < } < }, < { < "title": "runner", < "type": "action", < "name": "runner", < "parameters": {} < } < ] < }, < { < "title": "parallel", < "type": "composite", < "name": "parallel", --- > "title": "lineLiquidCollision", > "type": "action", > "name": "lineLiquidCollision", 537,558c451,454 < "fail": 1, < "success": -1 < }, < "children": [ < { < "title": "entityInSight", < "type": "action", < "name": "entityInSight", < "parameters": { < "entity": "target" < } < }, < { < "title": "flyInGeneralDirection", < "type": "action", < "name": "flyInGeneralDirection", < "parameters": { < "position": "movePosition", < "maxAngle": "" < } < } < ] --- > "endLine": {"key": "movePosition"}, > "excludeLiquidIds": {"key": ""}, > "startLine": {"key": "self"} > } 561,563c457,459 < "title": "optional", < "type": "decorator", < "name": "optional", --- > "title": "controlApproachVelocity", > "type": "action", > "name": "controlApproachVelocity", 565,585c461,462 < "shouldRun": "" < }, < "child": { < "title": "inverter", < "type": "decorator", < "name": "inverter", < "parameters": {}, < "child": { < "title": "moveToPosition", < "type": "action", < "name": "moveToPosition", < "parameters": { < "avoidLiquid": "", < "failFast": false, < "groundPosition": false, < "maxGround": 5, < "minGround": -5, < "position": "movePosition", < "run": false < } < } --- > "force": {"value": 20}, > "velocity": {"value": [0, 0]} 589c466 < "title": "flyInGeneralDirection", --- > "title": "runner", 591,595c468,469 < "name": "flyInGeneralDirection", < "parameters": { < "position": "movePosition", < "maxAngle": "" < } --- > "name": "runner", > "parameters": {} 598,606c472 < } < ] < }, < { < "title": "selector", < "type": "composite", < "name": "selector", < "parameters": {}, < "children": [ --- > }, 608c474 < "title": "sequence", --- > "title": "parallel", 610c476 < "name": "sequence", --- > "name": "parallel", 612,615c478,479 < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" --- > "fail": {"value": 1}, > "success": {"value": -1} 619c483 < "title": "greaterThan", --- > "title": "entityInSight", 621c485 < "name": "greaterThan", --- > "name": "entityInSight", 623,624c487 < "first": "", < "second": 0 --- > "entity": {"key": "target"} 628c491 < "title": "timer", --- > "title": "flyInGeneralDirection", 630c493 < "name": "timer", --- > "name": "flyInGeneralDirection", 632c495,496 < "time": "" --- > "maxAngle": {"key": ""}, > "position": {"key": "movePosition"} 638c502,563 < "title": "runner", --- > "title": "optional", > "type": "decorator", > "name": "optional", > "parameters": { > "shouldRun": {"key": ""} > }, > "child": { > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { > "title": "moveToPosition", > "type": "action", > "name": "moveToPosition", > "parameters": { > "avoidLiquid": {"key": ""}, > "groundPosition": {"value": false}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "position": {"key": "movePosition"}, > "run": {"value": false} > } > } > } > }, > { > "title": "flyInGeneralDirection", > "type": "action", > "name": "flyInGeneralDirection", > "parameters": { > "maxAngle": {"key": ""}, > "position": {"key": "movePosition"} > } > } > ] > } > ] > }, > { > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "greaterThan", > "type": "action", > "name": "greaterThan", > "parameters": { > "first": {"key": ""}, > "second": {"value": 0} > } > }, > { > "title": "timer", 640,641c565,568 < "name": "runner", < "parameters": {} --- > "name": "timer", > "parameters": { > "time": {"value": ""} > } 643a571,576 > }, > { > "title": "runner", > "type": "action", > "name": "runner", > "parameters": {} 649c582 < } \ No newline at end of file --- > } behaviors\monsters\modular\movement\flywander.behavior 3c3 < "description": "", --- > "description": null, 18c18,19 < "yVelocity": 12 --- > "yVelocity": 12, > "flyState": "fly" 24,29c25 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 45c41 < "direction": "facingDirection" --- > "direction": {"key": "facingDirection"} 53,54c49,50 < "state": "fly", < "type": "body" --- > "state": {"key": ""}, > "type": {"value": "body"} 62,63c58,59 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 71,72c67,68 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 84,89c80 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 96,99c87 < "dirVector": [ < "facingDirection", < 0 < ] --- > "dirVector": {"value": ["facingDirection", 0]} 107c95 < "direction": "facingDirection" --- > "direction": {"key": "facingDirection"} 118c106 < "direction": "facingDirection" --- > "direction": {"key": "facingDirection"} 134,139c122 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 146,147c129,130 < "number": "", < "factor": -2 --- > "factor": {"value": -2}, > "number": {"key": ""} 164,173c147,149 < "position": "self", < "offset": [ < 0, < "groundCheckDistance" < ], < "collisionType": [ < "Null", < "Block", < "Dynamic" < ] --- > "collisionType": {"value": ["Null", "Block", "Dynamic"]}, > "offset": {"value": [0, "groundCheckDistance"]}, > "position": {"key": "self"} 180,185c156 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 192,196c163,164 < "offset": [ < 0, < "groundCheckDistance" < ], < "position": "self" --- > "offset": {"value": [0, "groundCheckDistance"]}, > "position": {"key": "self"} 207,208c175,176 < "startLine": "self", < "endLine": "groundPoint" --- > "endLine": {"key": "groundPoint"}, > "startLine": {"key": "self"} 220,223c188,191 < "keepCeilingDistance": "", < "keepGroundDistance": "", < "maxXVelocity": "", < "maxYVelocity": "" --- > "keepCeilingDistance": {"key": ""}, > "keepGroundDistance": {"key": ""}, > "maxXVelocity": {"key": ""}, > "maxYVelocity": {"key": ""} 233,234c201,202 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 242,245c210 < "vector": [ < "facingDirection", < -0.1 < ] --- > "vector": {"value": ["facingDirection", -0.1]} 265c230 < "time": "" --- > "time": {"value": ""} behaviors\monsters\modular\movement\jump.behavior 5d4 < "/scripts/actions/monster.lua", 7,8d5 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 24,29c21 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 36,37c28,29 < "state": "", < "type": "body" --- > "state": {"value": ""}, > "type": {"value": "body"} 45,46c37,38 < "number": "", < "factor": "facingDirection" --- > "factor": {"key": "facingDirection"}, > "number": {"key": ""} 57,58c49,50 < "x": "xSpeed", < "y": "" --- > "x": {"key": "xSpeed"}, > "y": {"key": ""} 66c58 < "time": 0.1 --- > "time": {"value": 0.1} 84,89c76 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 110,111c97,98 < "first": "currentYVel", < "second": 0 --- > "first": {"key": "currentYVel"}, > "second": {"value": 0} 120,121c107,108 < "state": "", < "type": "body" --- > "state": {"value": ""}, > "type": {"value": "body"} 138,139c125,126 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 147,148c134,135 < "velocity": "xSpeed", < "force": "" --- > "force": {"key": ""}, > "velocity": {"key": "xSpeed"} 166,167c153,154 < "state": "idle", < "type": "body" --- > "state": {"value": "idle"}, > "type": {"value": "body"} behaviors\monsters\modular\movement\land-fly.behavior 13,16c13 < "landDirection": [ < 0, < -1 < ], --- > "landDirection": [0, -1], 22,25c19 < "idleTime": [ < 5, < 10 < ] --- > "idleTime": [5, 10] 31,36c25 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 43c32 < "vector": "" --- > "vector": {"key": ""} 55,56c44,45 < "number": "xDir", < "factor": "" --- > "factor": {"key": ""}, > "number": {"key": "xDir"} 67,68c56,57 < "number": "yDir", < "factor": "" --- > "factor": {"key": ""}, > "number": {"key": "yDir"} 79,80c68,69 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 88,97c77,79 < "position": "self", < "offset": [ < "xCheck", < "yCheck" < ], < "collisionType": [ < "Null", < "Block", < "Dynamic" < ] --- > "collisionType": {"value": ["Null", "Block", "Dynamic"]}, > "offset": {"value": ["xCheck", "yCheck"]}, > "position": {"key": "self"} 110,115c92 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 122,123c99,100 < "number": "xDir", < "factor": "" --- > "factor": {"key": ""}, > "number": {"key": "xDir"} 134,135c111,112 < "number": "yDir", < "factor": "" --- > "factor": {"key": ""}, > "number": {"key": "yDir"} 146,150c123,124 < "velocity": [ < "xSpeed", < "ySpeed" < ], < "force": "" --- > "force": {"key": ""}, > "velocity": {"value": ["xSpeed", "ySpeed"]} 165,166c139,140 < "state": "", < "type": "body" --- > "state": {"value": ""}, > "type": {"value": "body"} 181c155 < "dirVector": "" --- > "dirVector": {"key": ""} 199,200c173,174 < "state": "", < "type": "body" --- > "state": {"value": ""}, > "type": {"value": "body"} 208,209c182,183 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 217c191 < "dirVector": "" --- > "dirVector": {"key": ""} 225,229c199,200 < "velocity": [ < 0, < 0 < ], < "force": "" --- > "force": {"key": ""}, > "velocity": {"value": [0, 0]} 237c208 < "time": "" --- > "time": {"value": ""} behaviors\monsters\modular\movement\nudge.behavior 2a3 > "description": "", 17,22c18 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 29,30c25,26 < "max": "", < "min": "" --- > "max": {"key": ""}, > "min": {"key": ""} 41,42c37,38 < "max": "", < "min": "" --- > "max": {"key": ""}, > "min": {"key": ""} 53,56c49 < "velocity": [ < "xVel", < "yVel" < ] --- > "velocity": {"value": ["xVel", "yVel"]} behaviors\monsters\modular\movement\spawnmonster.behavior 2a3 > "description": "", 6,8c7 < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua" --- > "/scripts/actions/world.lua" 11,15c10,11 < "position": "self", < "offset": [ < 0, < 0 < ], --- > "position": null, > "offset": [0, 0], 23,28c19 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 35,39c26,27 < "first": "", < "second": [ < "facingDirection", < 1 < ] --- > "first": {"key": ""}, > "second": {"value": ["facingDirection", 1]} 50,51c38,39 < "offset": "spawnOffset", < "position": "" --- > "offset": {"key": "spawnOffset"}, > "position": {"key": ""} 62,64c50,52 < "position": "spawnPosition", < "type": "", < "replacement": "" --- > "position": {"key": "spawnPosition"}, > "replacement": {"key": ""}, > "type": {"value": ""} behaviors\monsters\modular\movement\swarmapproach.behavior 20,25c20 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 37,38c32,33 < "state": "", < "type": "body" --- > "state": {"value": ""}, > "type": {"value": "body"} 53,54c48,49 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 62c57 < "entity": "target" --- > "entity": {"key": "target"} 73,76c68,71 < "maxRange": "", < "minMoveDistance": "", < "idleTime": "", < "center": "targetPosition" --- > "center": {"key": "targetPosition"}, > "idleTime": {"key": ""}, > "maxRange": {"key": ""}, > "minMoveDistance": {"key": ""} 86,91c81,85 < "avoidLiquid": true, < "failFast": false, < "groundPosition": false, < "pathOptions": {}, < "position": "targetPosition", < "run": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": false}, > "pathOptions": {"value": {}}, > "position": {"key": "targetPosition"}, > "run": {"value": false} 94d87 < "direction": "direction", 102c95 < } \ No newline at end of file --- > } behaviors\monsters\modular\movement\teleportapproach.behavior 2a3 > "description": "", 11d11 < "moveState": "walk", 22,27c22 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 34c29 < "entity": "target" --- > "entity": {"key": "target"} 45,46c40,41 < "entity": "target", < "target": "self" --- > "entity": {"key": "target"}, > "target": {"key": "self"} 57,59c52,54 < "direction": "direction", < "multiplier": "", < "position": "targetPosition" --- > "direction": {"key": "direction"}, > "multiplier": {"key": ""}, > "position": {"key": "targetPosition"} 70,73c65,68 < "avoidLiquid": false, < "maxHeight": "", < "minHeight": "", < "position": "targetPosition" --- > "avoidLiquid": {"value": false}, > "maxHeight": {"key": ""}, > "minHeight": {"key": ""}, > "position": {"key": "targetPosition"} 89,91c84,86 < "position": "self", < "target": "targetPosition", < "range": "" --- > "position": {"key": "self"}, > "range": {"key": ""}, > "target": {"key": "targetPosition"} 100c95 < "emitter": "teleportOut" --- > "emitter": {"value": "teleportOut"} 108c103 < "time": 0.5 --- > "time": {"value": 0.5} 116,117c111,112 < "footPosition": true, < "position": "targetPosition" --- > "footPosition": {"value": true}, > "position": {"key": "targetPosition"} 125c120 < "emitter": "teleportIn" --- > "emitter": {"value": "teleportIn"} 133,134c128,129 < "state": "", < "type": "body" --- > "state": {"value": ""}, > "type": {"value": "body"} behaviors\monsters\modular\movement\walkapproach.behavior 20d19 < "minXRange": 2, 28,33c27 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 40,41c34,35 < "entity": "self", < "target": "target" --- > "entity": {"key": "self"}, > "target": {"key": "target"} 52,53c46,47 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 65,70c59 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 77c66 < "entity": "target" --- > "entity": {"key": "target"} 85,86c74,75 < "entity": "self", < "target": "target" --- > "entity": {"key": "self"}, > "target": {"key": "target"} 105,110c94 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 122,123c106,107 < "first": "targetYDir", < "second": 0 --- > "first": {"key": "targetYDir"}, > "second": {"value": 0} 146,151c130 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 164,165c143,144 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 173,175c152,154 < "type": "body", < "state": "", < "fallback": "" --- > "fallback": {"value": ""}, > "state": {"value": ""}, > "type": {"value": "body"} 183,184c162,163 < "direction": "targetDirection", < "run": "" --- > "direction": {"key": "targetDirection"}, > "run": {"key": ""} 201,206c180 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 213,214c187,188 < "first": "targetYDir", < "second": 0 --- > "first": {"key": "targetYDir"}, > "second": {"value": 0} 227c201 < "shouldRun": "" --- > "shouldRun": {"key": ""} 234,235c208,209 < "maxLoops": "", < "untilSuccess": false --- > "maxLoops": {"key": ""}, > "untilSuccess": {"value": false} 241,246c215 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 265c234 < "time": 1 --- > "time": {"value": 1} 275,279c244,248 < "fallState": "", < "jumpState": "", < "jumpXVelocity": "", < "jumpYVelocity": "", < "jumpXControlForce": "" --- > "jumpXVelocity": {"value": ""}, > "jumpYVelocity": {"value": ""}, > "jumpState": {"value": ""}, > "fallState": {"value": ""}, > "jumpXControlForce": {"value": ""} 294,295c263,264 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 303,304c272,273 < "direction": "targetDirection", < "run": "" --- > "direction": {"key": "targetDirection"}, > "run": {"key": ""} 326,327c295,296 < "state": "", < "type": "body" --- > "state": {"value": ""}, > "type": {"value": "body"} behaviors\monsters\modular\movement\walkwander.behavior 19,24c19 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 46,47c41,42 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 55,57c50,52 < "type": "body", < "state": "", < "fallback": "" --- > "fallback": {"value": ""}, > "state": {"value": ""}, > "type": {"value": "body"} 71,72c66,67 < "direction": "wanderDirection", < "run": "" --- > "direction": {"key": "wanderDirection"}, > "run": {"key": ""} 85c80 < "direction": "wanderDirection" --- > "direction": {"key": "wanderDirection"} 99c94 < "time": "" --- > "time": {"value": ""} behaviors\monsters\unique\bigapehologram.behavior 2a3 > "description": "", 6,8c7 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/status.lua" --- > "/scripts/actions/status.lua" 17,22c16 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 29c23 < "direction": -1 --- > "direction": {"value": -1} 37,38c31,32 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 46,51c40,45 < "targetQueryRange": "", < "keepTargetInRange": 100, < "keepTargetInSight": true, < "queryTargets": true, < "targetOnDamage": true, < "targetOutOfSightTime": 0 --- > "targetQueryRange": {"value": ""}, > "keepTargetInRange": {"value": 100}, > "keepTargetInSight": {"value": true}, > "queryTargets": {"value": true}, > "targetOnDamage": {"value": true}, > "targetOutOfSightTime": {"value": 0} 64,69c58 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 76c65 < "entity": "target" --- > "entity": {"key": "target"} 84,85c73,74 < "percentage": 0, < "resource": "health" --- > "percentage": {"value": 0}, > "resource": {"value": "health"} behaviors\monsters\unique\farmable.behavior 2a3 > "description": "", 13,20c14 < "wanderCooldown": [ < 2, < 8 < ], < "wanderTime": [ < 1, < 3 < ], --- > "wanderCooldown": [2, 8], 28,33c22 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 44,49c33 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 62c46 < "key": "playSpawnAnimation" --- > "key": {"value": "playSpawnAnimation"} 73c57 < "name": "playSpawnAnimation" --- > "name": {"value": "playSpawnAnimation"} 89c73 < "shouldRun": "playSpawnAnimation" --- > "shouldRun": {"key": "playSpawnAnimation"} 95,100c79 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 107,108c86,87 < "key": "playSpawnAnimation", < "bool": false --- > "bool": {"value": false}, > "key": {"value": "playSpawnAnimation"} 116,117c95,96 < "state": "spawn", < "type": "body" --- > "state": {"value": "spawn"}, > "type": {"value": "body"} 125c104 < "time": 1 --- > "time": {"value": 1} 136,137c115,116 < "state": "idle", < "type": "body" --- > "state": {"value": "idle"}, > "type": {"value": "body"} 155,160c134 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 185c159 < "interactive": false --- > "interactive": {"value": false} 193,194c167,168 < "type": "harvested", < "tag": "harvested." --- > "tag": {"value": "harvested."}, > "type": {"value": "harvested"} 202,203c176,177 < "state": "idle", < "type": "body" --- > "state": {"value": "idle"}, > "type": {"value": "body"} 211c185 < "sound": "harvest" --- > "sound": {"value": "harvest"} 219c193 < "entity": "interactionSource" --- > "entity": {"key": "interactionSource"} 227c201 < "time": 1 --- > "time": {"value": 1} 237,238c211,212 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 251,256c225 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 269,270c238,239 < "type": "harvested", < "tag": "" --- > "tag": {"value": ""}, > "type": {"value": "harvested"} 278c247 < "interactive": true --- > "interactive": {"value": true} 286,287c255,256 < "active": true, < "emitter": "harvestable" --- > "active": {"value": true}, > "emitter": {"value": "harvestable"} 296,301c265 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 308c272 < "interactive": false --- > "interactive": {"value": false} 316,317c280,281 < "type": "harvested", < "tag": "harvested." --- > "tag": {"value": "harvested."}, > "type": {"value": "harvested"} 325,326c289,290 < "active": false, < "emitter": "harvestable" --- > "active": {"value": false}, > "emitter": {"value": "harvestable"} 343,348c307 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 367,368c326,327 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 388,389c347,348 < "state": "fall", < "type": "body" --- > "state": {"value": "fall"}, > "type": {"value": "body"} 401,403c360,362 < "cooldown": 60, < "onFail": false, < "onSuccess": true --- > "cooldown": {"value": 60}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 409,414c368 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 421,423c375,377 < "cooldown": 10, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 10}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 430c384 < "chance": 0.25 --- > "chance": {"value": 0.25} 439,442c393 < "range": [ < 0.6, < 1 < ] --- > "range": {"value": [0.6, 1]} 450,451c401,402 < "state": "sleep", < "type": "body" --- > "state": {"value": "sleep"}, > "type": {"value": "body"} 459,460c410,411 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 468,471c419 < "range": [ < 0.6, < 1 < ] --- > "range": {"value": [0.6, 1]} 490,492c438,440 < "cooldown": "", < "onFail": false, < "onSuccess": true --- > "cooldown": {"key": ""}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 498,503c446 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 510,512c453,455 < "cooldown": 2, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 2}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 519c462 < "chance": 0.25 --- > "chance": {"value": 0.25} 537,538c480,481 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 546,547c489,490 < "direction": "move", < "run": false --- > "direction": {"key": "move"}, > "run": {"value": false} 554,559c497 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 566,567c504,505 < "state": "walk", < "type": "body" --- > "state": {"value": "walk"}, > "type": {"value": "body"} 575c513 < "time": 0.5 --- > "time": {"value": 0.5} 590,592c528,530 < "cooldown": "", < "onFail": false, < "onSuccess": true --- > "cooldown": {"key": ""}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 598,603c536 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 610,612c543,545 < "cooldown": 2, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 2}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 619c552 < "chance": 0.25 --- > "chance": {"value": 0.25} 628,629c561,562 < "state": "graze", < "type": "body" --- > "state": {"value": "graze"}, > "type": {"value": "body"} 637c570 < "time": "" --- > "time": {"value": ""} 645,646c578,579 < "state": "grazewinddown", < "type": "body" --- > "state": {"value": "grazewinddown"}, > "type": {"value": "body"} 654c587 < "time": 0.5 --- > "time": {"value": 0.5} 664,669c597 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 676,677c604,605 < "state": "idle", < "type": "body" --- > "state": {"value": "idle"}, > "type": {"value": "body"} behaviors\monsters\unique\farmablebaby.behavior 2a3 > "description": "", 11,18c12,13 < "idleTime": [ < 2, < 8 < ], < "wanderTime": [ < 1, < 3 < ] --- > "idleTime": [2, 8], > "wanderTime": [1, 3] 36,41c31 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 60,61c50,51 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 81,82c71,72 < "state": "fall", < "type": "body" --- > "state": {"value": "fall"}, > "type": {"value": "body"} 100,102c90,92 < "cooldown": "", < "onFail": false, < "onSuccess": true --- > "cooldown": {"key": ""}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 108,113c98 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 120,122c105,107 < "cooldown": 2, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 2}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 129c114 < "chance": 0.25 --- > "chance": {"value": 0.25} 147,148c132,133 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 156,157c141,142 < "direction": "move", < "run": false --- > "direction": {"key": "move"}, > "run": {"value": false} 164,169c149 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 176,177c156,157 < "state": "walk", < "type": "body" --- > "state": {"value": "walk"}, > "type": {"value": "body"} 185c165 < "time": "" --- > "time": {"value": ""} 199,204c179 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 211,212c186,187 < "state": "idle", < "type": "body" --- > "state": {"value": "idle"}, > "type": {"value": "body"} behaviors\monsters\unique\kluextotem.behavior 5,6d4 < "/scripts/actions/monster.lua", < "/scripts/actions/animator.lua", 8d5 < "/monsters/monster.lua", 11,13c8,9 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/time.lua", --- > "/scripts/actions/animator.lua", > "/scripts/actions/time.lua", 23,28c19 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 35c26 < "touchDamage": true --- > "touchDamage": {"value": true} 43c34 < "number": 0 --- > "number": {"value": 0} 54c45 < "aggressive": true --- > "aggressive": {"value": true} 62,63c53,54 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 71,76c62,67 < "targetQueryRange": 50, < "keepTargetInRange": 100, < "keepTargetInSight": true, < "queryTargets": true, < "targetOnDamage": true, < "targetOutOfSightTime": 0 --- > "targetQueryRange": {"value": 50}, > "keepTargetInRange": {"value": 100}, > "keepTargetInSight": {"value": true}, > "queryTargets": {"value": true}, > "targetOnDamage": {"value": true}, > "targetOutOfSightTime": {"value": 0} 90,91c81,82 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 99c90 < "entity": "target" --- > "entity": {"key": "target"} 106,111c97 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 118c104 < "aggressive": true --- > "aggressive": {"value": true} 126,127c112,113 < "state": "wake", < "type": "body" --- > "state": {"value": "wake"}, > "type": {"value": "body"} 135,136c121,122 < "active": true, < "light": "glow" --- > "active": {"value": true}, > "light": {"value": "glow"} 144c130 < "time": 6 --- > "time": {"value": 6} 152,153c138,139 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 159,164c145 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 170,175c151 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 182,183c158,159 < "state": "fire", < "type": "body" --- > "state": {"value": "fire"}, > "type": {"value": "body"} 191c167 < "time": 0.2 --- > "time": {"value": 0.2} 199c175 < "sound": "fire" --- > "sound": {"value": "fire"} 206,211c182 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 218,222c189,190 < "offset": [ < 0, < 5 < ], < "position": "self" --- > "offset": {"value": [0, 5]}, > "position": {"key": "self"} 233,241c201,206 < "position": "projectile", < "projectileType": "delayedplasmaball", < "aimVector": [ < 0, < 0 < ], < "trackSource": false, < "parameters": {}, < "target": "target" --- > "aimVector": {"value": [0, 0]}, > "parameters": {"value": {}}, > "position": {"key": "projectile"}, > "projectileType": {"value": "delayedplasmaball"}, > "target": {"key": "target"}, > "trackSource": {"value": false} 251c216 < "time": 0.2 --- > "time": {"value": 0.2} 259c224 < "sound": "fire" --- > "sound": {"value": "fire"} 266,271c231 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 278,282c238,239 < "offset": [ < -3, < 0 < ], < "position": "self" --- > "offset": {"value": [-3, 0]}, > "position": {"key": "self"} 293,301c250,255 < "position": "projectile", < "projectileType": "delayedplasmaball", < "aimVector": [ < 0, < 0 < ], < "trackSource": false, < "parameters": {}, < "target": "target" --- > "aimVector": {"value": [0, 0]}, > "parameters": {"value": {}}, > "position": {"key": "projectile"}, > "projectileType": {"value": "delayedplasmaball"}, > "target": {"key": "target"}, > "trackSource": {"value": false} 310,315c264 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 322,326c271,272 < "offset": [ < 3, < 0 < ], < "position": "self" --- > "offset": {"value": [3, 0]}, > "position": {"key": "self"} 337,345c283,288 < "position": "projectile", < "projectileType": "delayedplasmaball", < "aimVector": [ < 0, < 0 < ], < "trackSource": false, < "parameters": {}, < "target": "target" --- > "aimVector": {"value": [0, 0]}, > "parameters": {"value": {}}, > "position": {"key": "projectile"}, > "projectileType": {"value": "delayedplasmaball"}, > "target": {"key": "target"}, > "trackSource": {"value": false} 357c300 < "time": 4 --- > "time": {"value": 4} 364,369c307 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 376,377c314,315 < "state": "fire", < "type": "body" --- > "state": {"value": "fire"}, > "type": {"value": "body"} 385c323 < "time": 0.1 --- > "time": {"value": 0.1} 393c331 < "sound": "fire" --- > "sound": {"value": "fire"} 400,405c338 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 412,416c345,346 < "offset": [ < 0, < 6 < ], < "position": "self" --- > "offset": {"value": [0, 6]}, > "position": {"key": "self"} 427,435c357,362 < "position": "projectile", < "projectileType": "delayedplasmaball", < "aimVector": [ < 0, < 0 < ], < "trackSource": false, < "parameters": {}, < "target": "target" --- > "aimVector": {"value": [0, 0]}, > "parameters": {"value": {}}, > "position": {"key": "projectile"}, > "projectileType": {"value": "delayedplasmaball"}, > "target": {"key": "target"}, > "trackSource": {"value": false} 445c372 < "time": 0.1 --- > "time": {"value": 0.1} 453c380 < "sound": "fire" --- > "sound": {"value": "fire"} 460,465c387 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 472,476c394,395 < "offset": [ < 0, < 9 < ], < "position": "self" --- > "offset": {"value": [0, 9]}, > "position": {"key": "self"} 487,495c406,411 < "position": "projectile", < "projectileType": "delayedplasmaball", < "aimVector": [ < 0, < 0 < ], < "trackSource": false, < "parameters": {}, < "target": "target" --- > "aimVector": {"value": [0, 0]}, > "parameters": {"value": {}}, > "position": {"key": "projectile"}, > "projectileType": {"value": "delayedplasmaball"}, > "target": {"key": "target"}, > "trackSource": {"value": false} 505c421 < "time": 0.1 --- > "time": {"value": 0.1} 513c429 < "sound": "fire" --- > "sound": {"value": "fire"} 520,525c436 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 532,536c443,444 < "offset": [ < 0, < 12 < ], < "position": "self" --- > "offset": {"value": [0, 12]}, > "position": {"key": "self"} 547,555c455,460 < "position": "projectile", < "projectileType": "delayedplasmaball", < "aimVector": [ < 0, < 0 < ], < "trackSource": false, < "parameters": {}, < "target": "target" --- > "aimVector": {"value": [0, 0]}, > "parameters": {"value": {}}, > "position": {"key": "projectile"}, > "projectileType": {"value": "delayedplasmaball"}, > "target": {"key": "target"}, > "trackSource": {"value": false} 565c470 < "time": 0.1 --- > "time": {"value": 0.1} 573c478 < "sound": "fire" --- > "sound": {"value": "fire"} 580,585c485 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 592,596c492,493 < "offset": [ < 0, < 15 < ], < "position": "self" --- > "offset": {"value": [0, 15]}, > "position": {"key": "self"} 607,615c504,509 < "position": "projectile", < "projectileType": "delayedplasmaball", < "aimVector": [ < 0, < 0 < ], < "trackSource": false, < "parameters": {}, < "target": "target" --- > "aimVector": {"value": [0, 0]}, > "parameters": {"value": {}}, > "position": {"key": "projectile"}, > "projectileType": {"value": "delayedplasmaball"}, > "target": {"key": "target"}, > "trackSource": {"value": false} 627c521 < "time": 6 --- > "time": {"value": 6} 634,639c528 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 646,647c535,536 < "state": "fire", < "type": "body" --- > "state": {"value": "fire"}, > "type": {"value": "body"} 655c544 < "time": 0.5 --- > "time": {"value": 0.5} 663c552 < "sound": "fire" --- > "sound": {"value": "fire"} 670,675c559 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 682,686c566,567 < "offset": [ < 3, < 5 < ], < "position": "self" --- > "offset": {"value": [3, 5]}, > "position": {"key": "self"} 697,705c578,583 < "position": "projectile", < "projectileType": "delayedplasmaball", < "aimVector": [ < 0, < 0 < ], < "trackSource": false, < "parameters": {}, < "target": "target" --- > "aimVector": {"value": [0, 0]}, > "parameters": {"value": {}}, > "position": {"key": "projectile"}, > "projectileType": {"value": "delayedplasmaball"}, > "target": {"key": "target"}, > "trackSource": {"value": false} 714,719c592 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 726,730c599,600 < "offset": [ < -3, < 5 < ], < "position": "self" --- > "offset": {"value": [-3, 5]}, > "position": {"key": "self"} 741,749c611,616 < "position": "projectile", < "projectileType": "delayedplasmaball", < "aimVector": [ < 0, < 0 < ], < "trackSource": false, < "parameters": {}, < "target": "target" --- > "aimVector": {"value": [0, 0]}, > "parameters": {"value": {}}, > "position": {"key": "projectile"}, > "projectileType": {"value": "delayedplasmaball"}, > "target": {"key": "target"}, > "trackSource": {"value": false} 761c628 < "time": 0.5 --- > "time": {"value": 0.5} 768,773c635 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 780,781c642,643 < "state": "fire", < "type": "body" --- > "state": {"value": "fire"}, > "type": {"value": "body"} 789c651 < "time": 0.5 --- > "time": {"value": 0.5} 797c659 < "sound": "fire" --- > "sound": {"value": "fire"} 804,809c666 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 816,820c673,674 < "offset": [ < 4.5, < 7.5 < ], < "position": "self" --- > "offset": {"value": [4.5, 7.5]}, > "position": {"key": "self"} 831,839c685,690 < "position": "projectile", < "projectileType": "delayedplasmaball", < "aimVector": [ < 0, < 0 < ], < "trackSource": false, < "parameters": {}, < "target": "target" --- > "aimVector": {"value": [0, 0]}, > "parameters": {"value": {}}, > "position": {"key": "projectile"}, > "projectileType": {"value": "delayedplasmaball"}, > "target": {"key": "target"}, > "trackSource": {"value": false} 848,853c699 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 860,864c706,707 < "offset": [ < -4.5, < 7.5 < ], < "position": "self" --- > "offset": {"value": [-4.5, 7.5]}, > "position": {"key": "self"} 875,883c718,723 < "position": "projectile", < "projectileType": "delayedplasmaball", < "aimVector": [ < 0, < 0 < ], < "trackSource": false, < "parameters": {}, < "target": "target" --- > "aimVector": {"value": [0, 0]}, > "parameters": {"value": {}}, > "position": {"key": "projectile"}, > "projectileType": {"value": "delayedplasmaball"}, > "target": {"key": "target"}, > "trackSource": {"value": false} 895c735 < "time": 4 --- > "time": {"value": 4} 909,914c749 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 921,922c756,757 < "state": "sleep", < "type": "body" --- > "state": {"value": "sleep"}, > "type": {"value": "body"} 930c765 < "time": 0.5 --- > "time": {"value": 0.5} 938,939c773,774 < "active": false, < "light": "glow" --- > "active": {"value": false}, > "light": {"value": "glow"} 947,948c782,783 < "percentage": 1, < "resource": "health" --- > "percentage": {"value": 1}, > "resource": {"value": "health"} behaviors\monsters\unique\taroni.behavior 2a3 > "description": "", 4,5d4 < "/scripts/actions/monster.lua", < "/scripts/actions/animator.lua", 7d5 < "/monsters/monster.lua", 9a8 > "/scripts/actions/animator.lua", 12,14c11 < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua" --- > "/scripts/actions/world.lua" 23,28c20 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 35c27 < "touchDamage": true --- > "touchDamage": {"value": true} 43c35 < "number": 0 --- > "number": {"value": 0} 54c46 < "aggressive": true --- > "aggressive": {"value": true} 62,63c54,55 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 76,81c68 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 88,93c75,80 < "targetQueryRange": 20, < "keepTargetInRange": 40, < "keepTargetInSight": true, < "queryTargets": true, < "targetOnDamage": true, < "targetOutOfSightTime": 2 --- > "targetQueryRange": {"value": 20}, > "keepTargetInRange": {"value": 40}, > "keepTargetInSight": {"value": true}, > "queryTargets": {"value": true}, > "targetOnDamage": {"value": true}, > "targetOutOfSightTime": {"value": 2} 101c88 < "name": "hostile" --- > "name": {"value": "hostile"} 110,115c97 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 122c104 < "name": "hostile" --- > "name": {"value": "hostile"} 148,153c130 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 166,167c143,144 < "state": "stunned", < "type": "damage" --- > "state": {"value": "stunned"}, > "type": {"value": "damage"} 175c152 < "time": 0.25 --- > "time": {"value": 0.25} 195c172 < "time": 0.5 --- > "time": {"value": 0.5} 205,206c182,183 < "state": "none", < "type": "damage" --- > "state": {"value": "none"}, > "type": {"value": "damage"} 216,217c193,194 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 225c202 < "entity": "target" --- > "entity": {"key": "target"} 238c215 < "name": "hostile" --- > "name": {"key": "hostile"} 253,255c230,232 < "cooldown": 3, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 3}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 262,263c239,240 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 276,280c253,257 < "entity": "target", < "range": "", < "xRange": "", < "yRange": "", < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "range": {"key": ""}, > "xRange": {"key": ""}, > "yRange": {"key": ""} 289,293c266,269 < "canJump": false, < "moveState": "walk", < "minXRange": 2, < "run": false, < "idleState": "idle" --- > "canJump": {"value": false}, > "moveState": {"value": "walk"}, > "run": {"value": false}, > "idleState": {"value": "idle"} 304,310c280,283 < "wanderTime": [ < 1, < 3 < ], < "moveState": "walk", < "idleState": "idle", < "run": false --- > "wanderTime": {"value": [1, 3]}, > "moveState": {"value": "walk"}, > "idleState": {"value": "idle"}, > "run": {"value": false} 322,324c295,297 < "cooldown": 8, < "onFail": false, < "onSuccess": true --- > "cooldown": {"value": 8}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 330,335c303 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 342,343c310,311 < "state": "dig", < "type": "body" --- > "state": {"value": "dig"}, > "type": {"value": "body"} 351c319 < "time": 1 --- > "time": {"value": 1} 365,366c333,334 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 374c342 < "entity": "target" --- > "entity": {"key": "target"} 388,424c356,371 < "aimAtTarget": true, < "aimDirection": [ < 1, < 0 < ], < "faceTarget": true, < "fireDelay": 0, < "fireOffset": [ < 0, < 0 < ], < "fireSound": "fire", < "inaccuracy": 0, < "keepInRange": false, < "maxXRange": 0, < "maxYRange": 4, < "maximumRange": 18, < "minimumRange": 4, < "onGround": true, < "projectileCount": 1, < "projectileInterval": 0.25, < "projectileParameters": {}, < "power": 10, < "projectileType": "tarball", < "requireLineOfSight": true, < "rotateToTarget": false, < "wallCollisionCheck": false, < "winddownState": "idle", < "winddownStopForce": 0, < "winddownTime": 0, < "windupState": "fire", < "windupStopForce": 0, < "windupTime": 0.5, < "fireArc": true, < "projectileSpeed": 32, < "gravityMultiplier": 0.6, < "highArc": false --- > "aimAtTarget": {"value": true}, > "aimDirection": {"value": [1, 0]}, > "projectileType": {"value": "tarball"}, > "inaccuracy": {"value": 0}, > "projectileCount": {"value": 1}, > "projectileInterval": {"value": 0.25}, > "fireOffset": {"value": [0, 0]}, > "fireSound": {"value": "fire"}, > "winddownState": {"value": "idle"}, > "windupState": {"value": "fire"}, > "fireDelay": {"value": 0}, > "projectileParameters": {"value": {}}, > "fireArc": {"value": true}, > "projectileSpeed": {"value": 32}, > "highArc": {"value": false}, > "faceTarget": {"value": true} 432,436c379,382 < "canJump": false, < "moveState": "tarwalk", < "minXRange": 2, < "run": false, < "idleState": "taridle" --- > "canJump": {"value": false}, > "moveState": {"value": "tarwalk"}, > "run": {"value": false}, > "idleState": {"value": "taridle"} 453,458c399,401 < "cooldown": [ < 2, < 6 < ], < "onFail": false, < "onSuccess": true --- > "cooldown": {"value": [2, 6]}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 465,471c408,411 < "wanderTime": [ < 1, < 3 < ], < "moveState": "tarwalk", < "idleState": "taridle", < "run": false --- > "wanderTime": {"value": [1, 3]}, > "moveState": {"value": "tarwalk"}, > "idleState": {"value": "taridle"}, > "run": {"value": false} 491,496c431 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 509,510c444,445 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 518c453 < "entity": "target" --- > "entity": {"key": "target"} 526,536c461,470 < "canJump": false, < "maxJumps": 3, < "jumpXVelocity": 15, < "jumpYVelocity": 35, < "jumpState": "jump", < "fallState": "fall", < "jumpXControlForce": 50, < "moveState": "walk", < "minXRange": 2, < "run": false, < "idleState": "idle" --- > "canJump": {"value": false}, > "maxJumps": {"value": 3}, > "jumpXVelocity": {"value": 15}, > "jumpYVelocity": {"value": 35}, > "jumpState": {"value": "jump"}, > "fallState": {"value": "fall"}, > "jumpXControlForce": {"value": 50}, > "moveState": {"value": "walk"}, > "run": {"value": false}, > "idleState": {"value": "idle"} 546,551c480,482 < "cooldown": [ < 2, < 6 < ], < "onFail": false, < "onSuccess": true --- > "cooldown": {"value": [2, 6]}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 558,564c489,492 < "wanderTime": [ < 1, < 3 < ], < "moveState": "walk", < "idleState": "idle", < "run": false --- > "wanderTime": {"value": [1, 3]}, > "moveState": {"value": "walk"}, > "idleState": {"value": "idle"}, > "run": {"value": false} 584c512 < } --- > } \ No newline at end of file behaviors\npc\accuse.behavior 15,18c15 < "hostileDamageTeam": { < "type": "enemy", < "team": 1 < } --- > "hostileDamageTeam": {"type": "enemy", "team": 1} 24,29c21 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 36c28 < "type": "objectBroken" --- > "type": {"value": "objectBroken"} 53,58c45 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 65,66c52,53 < "from": "self", < "to": "objectPosition" --- > "from": {"key": "self"}, > "to": {"key": "objectPosition"} 82,88c69,71 < "position": "self", < "offset": "toObject", < "collisionType": [ < "Null", < "Block", < "Dynamic" < ] --- > "collisionType": {"value": ["Null", "Block", "Dynamic"]}, > "offset": {"key": "toObject"}, > "position": {"key": "self"} 98,103c81 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 110c88 < "entity": "thiefTarget" --- > "entity": {"key": "thiefTarget"} 121,122c99,100 < "from": "self", < "to": "thiefPosition" --- > "from": {"key": "self"}, > "to": {"key": "thiefPosition"} 138,144c116,118 < "position": "self", < "offset": "toThief", < "collisionType": [ < "Null", < "Block", < "Dynamic" < ] --- > "collisionType": {"value": ["Null", "Block", "Dynamic"]}, > "offset": {"key": "toThief"}, > "position": {"key": "self"} 163c137 < "limit": 2 --- > "limit": {"value": 2} 170,173c144,146 < "dialogType": "dialog.accuse", < "entity": "thiefTarget", < "tags": {}, < "static": false --- > "dialogType": {"value": "dialog.accuse"}, > "entity": {"key": "thiefTarget"}, > "tags": {"value": {}} 181,186c154 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 193c161 < "entity": "thiefTarget" --- > "entity": {"key": "thiefTarget"} 204c172 < "damageTeam": "" --- > "damageTeam": {"key": ""} 212,213c180,181 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 221,223c189,191 < "cooldown": 1, < "onFail": false, < "onSuccess": true --- > "cooldown": {"value": 1}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 230,236c198,202 < "position": "self", < "range": 40, < "entityTypes": [ < "npc" < ], < "type": "attackThief", < "target": "reactTarget" --- > "entityTypes": {"value": ["npc"]}, > "position": {"key": "self"}, > "range": {"value": 40}, > "target": {"key": "reactTarget"}, > "type": {"value": "attackThief"} 245,247c211,213 < "cooldown": 6, < "onFail": false, < "onSuccess": true --- > "cooldown": {"value": 6}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 253,258c219 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 265c226 < "time": 2 --- > "time": {"value": 2} 273,276c234,236 < "dialogType": "dialog.alert", < "entity": "reactTarget", < "tags": {}, < "static": false --- > "dialogType": {"value": "dialog.alert"}, > "entity": {"key": "reactTarget"}, > "tags": {"value": {}} 287,288c247,248 < "duration": 10, < "creepy": false --- > "creepy": {"value": false}, > "duration": {"value": 10} behaviors\npc\attackthief.behavior 2a3 > "description": "", 21,26c22 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 33c29 < "type": "objectBroken" --- > "type": {"value": "objectBroken"} 55,60c51 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 67,68c58,59 < "from": "self", < "to": "objectPosition" --- > "from": {"key": "self"}, > "to": {"key": "objectPosition"} 79,85c70,72 < "position": "self", < "offset": "toObject", < "collisionType": [ < "Null", < "Block", < "Dynamic" < ] --- > "collisionType": {"value": ["Null", "Block", "Dynamic"]}, > "offset": {"key": "toObject"}, > "position": {"key": "self"} 94,99c81 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 106c88 < "entity": "thiefTarget" --- > "entity": {"key": "thiefTarget"} 117,118c99,100 < "from": "self", < "to": "thiefPosition" --- > "from": {"key": "self"}, > "to": {"key": "thiefPosition"} 129,135c111,113 < "position": "self", < "offset": "toThief", < "collisionType": [ < "Null", < "Block", < "Dynamic" < ] --- > "collisionType": {"value": ["Null", "Block", "Dynamic"]}, > "offset": {"key": "toThief"}, > "position": {"key": "self"} 154c132 < "limit": 2 --- > "limit": {"value": 2} 160,165c138 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 172,175c145,147 < "dialogType": "dialog.accuse", < "entity": "thiefTarget", < "tags": {}, < "static": false --- > "dialogType": {"value": "dialog.accuse"}, > "entity": {"key": "thiefTarget"}, > "tags": {"value": {}} 183c155 < "time": 2 --- > "time": {"value": 2} 194,196c166,168 < "cooldown": 1, < "onFail": false, < "onSuccess": true --- > "cooldown": {"value": 1}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 203,209c175,179 < "position": "self", < "range": 40, < "entityTypes": [ < "npc" < ], < "type": "attackThief", < "target": "reactTarget" --- > "entityTypes": {"value": ["npc"]}, > "position": {"key": "self"}, > "range": {"value": 40}, > "target": {"key": "reactTarget"}, > "type": {"value": "attackThief"} behaviors\npc\chat.behavior 7,9c7 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/movement.lua", --- > "/scripts/actions/movement.lua", 11,15c9 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 23,28c17 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 35,36c24,25 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 44,49c33,38 < "goal": "chatfriends", < "goalType": "list", < "groupId": "chat", < "maxMembers": 2, < "minMembers": 2, < "position": "self" --- > "goal": {"value": "chatfriends"}, > "goalType": {"value": "list"}, > "groupId": {"value": "chat"}, > "maxMembers": {"value": 2}, > "minMembers": {"value": 2}, > "position": {"key": "self"} 56,61c45 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 79,81c63,65 < "entity": "chatfriend", < "xRange": 2, < "position": "self" --- > "entity": {"key": "chatfriend"}, > "position": {"key": "self"}, > "xRange": {"value": 2} 89,94c73 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 101,102c80,81 < "entity": "self", < "target": "chatfriend" --- > "entity": {"key": "self"}, > "target": {"key": "chatfriend"} 113c92 < "direction": "chatdirection" --- > "direction": {"key": "chatdirection"} 124,125c103,104 < "direction": "chatdirection", < "run": false --- > "direction": {"key": "chatdirection"}, > "run": {"value": false} 137c116 < "entity": "chatfriend" --- > "entity": {"key": "chatfriend"} 157c136 < "target": "self" --- > "target": {"key": "self"} 168c147 < "target": "chatfriend" --- > "target": {"key": "chatfriend"} 199,200c178,179 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 208,211c187,190 < "groupId": "chat", < "taskId": "first", < "minMembers": 1, < "maxMembers": 1 --- > "groupId": {"value": "chat"}, > "maxMembers": {"value": 1}, > "minMembers": {"value": 1}, > "taskId": {"value": "first"} 219,220c198,199 < "maxLoops": 3, < "untilSuccess": false --- > "maxLoops": {"value": 3}, > "untilSuccess": {"value": false} 233c212 < "emote": "blabbering" --- > "emote": {"value": "blabbering"} 241c220 < "time": 4 --- > "time": {"value": 4} 254,255c233,234 < "maxLoops": 3, < "untilSuccess": false --- > "maxLoops": {"value": 3}, > "untilSuccess": {"value": false} 268c247 < "time": 2 --- > "time": {"value": 2} 276c255 < "emote": "blabbering" --- > "emote": {"value": "blabbering"} 284c263 < "time": 2 --- > "time": {"value": 2} 299c278 < "groupId": "chatfriends" --- > "groupId": {"value": "chatfriends"} 310,315c289 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 333,334c307,308 < "reaction": "", < "influence": "influence" --- > "influence": {"key": "influence"}, > "reaction": {"key": ""} 341,346c315 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 354,355c323 < "influence": "influence", < "source": "reactTarget" --- > "influence": "influence" 363,364c331,332 < "influence": "influence", < "target": "reactTarget" --- > "influence": {"key": "influence"}, > "target": {"key": "reactTarget"} 392c360 < "time": 3 --- > "time": {"value": 3} behaviors\npc\combat.behavior 11d10 < "combatParameters": {}, 19,20c18,19 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 32,37c31 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 97,98c91,92 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 105,110c99 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 117,123c106,111 < "behavior": "combatcoordinator", < "goal": "target", < "goalType": "entity", < "groupId": "combat", < "maxMembers": 8, < "minMembers": 1, < "parameters": "" --- > "behavior": {"value": "combatcoordinator"}, > "goal": {"value": "target"}, > "goalType": {"value": "entity"}, > "groupId": {"value": "combat"}, > "maxMembers": {"value": 8}, > "minMembers": {"value": 1} 131c119 < "entity": "target" --- > "entity": {"key": "target"} 139c127 < "entity": "target" --- > "entity": {"key": "target"} 158,159c146,147 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 167,168c155,156 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 202,203c190,191 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 217,219c205,207 < "cooldown": 2, < "onFail": true, < "onSuccess": false --- > "cooldown": {"value": 2}, > "onFail": {"value": true}, > "onSuccess": {"value": false} 226,227c214,215 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 235,238c223,226 < "groupId": "combat", < "taskId": "melee", < "minMembers": 1, < "maxMembers": 8 --- > "groupId": {"value": "combat"}, > "maxMembers": {"value": 8}, > "minMembers": {"value": 1}, > "taskId": {"value": "melee"} 257,258c245,246 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 272,275c260,263 < "groupId": "combat", < "taskId": "ranged", < "minMembers": 1, < "maxMembers": 8 --- > "groupId": {"value": "combat"}, > "maxMembers": {"value": 8}, > "minMembers": {"value": 1}, > "taskId": {"value": "ranged"} 291c279 < "shouldRun": "" --- > "shouldRun": {"key": ""} 298,299c286,287 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 313,316c301,304 < "groupId": "combat", < "taskId": "meleeStandby", < "minMembers": 1, < "maxMembers": 8 --- > "groupId": {"value": "combat"}, > "maxMembers": {"value": 8}, > "minMembers": {"value": 1}, > "taskId": {"value": "meleeStandby"} behaviors\npc\converse.behavior 2a3 > "description": "", 25,30c26 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 37,38c33,34 < "chance": "", < "seedMix": "giveClues" --- > "chance": {"key": ""}, > "seedMix": {"value": "giveClues"} 56,59c52,54 < "entity": "player", < "static": true, < "tags": {}, < "dialog": "clueDialog" --- > "dialog": {"key": "clueDialog"}, > "entity": {"key": "player"}, > "tags": {"value": {}} 67c62 < "entity": "player" --- > "entity": {"key": "player"} 75c70 < "time": 2 --- > "time": {"value": 2} 86a82 > "title": null, 91a88 > "title": null, 95c92 < "entity": "interactionSource" --- > "entity": {"key": "interactionSource"} 115,116c112,113 < "chance": "", < "seedMix": "converseOrGreeting" --- > "chance": {"key": ""}, > "seedMix": {"value": "converseOrGreeting"} 124,125c121,122 < "dialogType": "dialog.greeting", < "entity": "interactionSource" --- > "dialogType": {"value": "dialog.greeting"}, > "entity": {"key": "interactionSource"} 141,142c138,139 < "entity": "interactionSource", < "dialogType": "dialog.converse" --- > "dialogType": {"value": "dialog.converse"}, > "entity": {"key": "interactionSource"} 149a147 > "title": null, 153c151 < "time": 1 --- > "time": {"value": 1} behaviors\npc\converseseq.behavior 17a18 > "title": null, 27c28 < "entity": "interactionSource" --- > "entity": {"key": "interactionSource"} 53c54 < "dialogType": "dialog.converse" --- > "dialogType": {"value": "dialog.converse"} 71c72 < "time": 3 --- > "time": {"value": 3} behaviors\npc\droptrash.behavior 6,10c6 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 25c21 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 33c29 < "dance": "flipswitch" --- > "dance": {"value": "flipswitch"} 41,44c37,40 < "entity": "reactTarget", < "itemName": "soggypaper", < "amount": 1, < "parameters": {} --- > "amount": {"value": 1}, > "entity": {"key": "reactTarget"}, > "itemName": {"value": "soggypaper"}, > "parameters": {"value": {}} behaviors\npc\finalreact.behavior 17,22c17 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 29c24 < "reaction": "reaction" --- > "reaction": {"key": "reaction"} 43,44c38,39 < "reactionVar": "reaction", < "reactionName": "quit" --- > "reactionName": {"value": "quit"}, > "reactionVar": {"value": "reaction"} 52c47 < "reaction": "reaction" --- > "reaction": {"key": "reaction"} 60c55 < "reaction": "reaction" --- > "reaction": {"key": "reaction"} behaviors\npc\flee.behavior 12,15c12 < "hostileDamageTeam": { < "type": "enemy", < "team": 1 < } --- > "hostileDamageTeam": {"type": "enemy", "team": 1} 50,55c47 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 71,72c63,64 < "entity": "damageSource", < "damageTeam": "damageTeam" --- > "damageTeam": {"key": "damageTeam"}, > "entity": {"key": "damageSource"} 80c72 < "damageTeam": "" --- > "damageTeam": {"key": ""} 91c83 < "entity": "damageSource" --- > "entity": {"key": "damageSource"} 102,103c94,95 < "entity": "fleeTarget", < "dialogType": "dialog.flee.helpme" --- > "dialogType": {"value": "dialog.flee.helpme"}, > "entity": {"key": "fleeTarget"} 111,117c103,107 < "position": "self", < "range": 50, < "entityTypes": [ < "npc" < ], < "type": "attack", < "target": "fleeTarget" --- > "entityTypes": {"value": ["npc"]}, > "position": {"key": "self"}, > "range": {"value": 50}, > "target": {"key": "fleeTarget"}, > "type": {"value": "attack"} 126,131c116 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 138c123 < "type": "attack" --- > "type": {"value": "attack"} 149,154c134 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 170,171c150,151 < "entity": "notificationSource", < "damageTeam": "damageTeam" --- > "damageTeam": {"key": "damageTeam"}, > "entity": {"key": "notificationSource"} 180,185c160 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 192,195c167,168 < "entity": "maybeFleeTarget", < "types": [ < "player" < ] --- > "entity": {"key": "maybeFleeTarget"}, > "types": {"value": ["player"]} 203c176 < "damageTeam": "" --- > "damageTeam": {"key": ""} 213c186 < "entity": "maybeFleeTarget" --- > "entity": {"key": "maybeFleeTarget"} 221c194 < "entity": "maybeFleeTarget" --- > "entity": {"key": "maybeFleeTarget"} 236,237c209,210 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 250,252c223,225 < "cooldown": 1, < "onFail": false, < "onSuccess": true --- > "cooldown": {"value": 1}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 259,265c232,236 < "position": "self", < "range": 50, < "entityTypes": [ < "npc" < ], < "type": "attack", < "target": "fleeTarget" --- > "entityTypes": {"value": ["npc"]}, > "position": {"key": "self"}, > "range": {"value": 50}, > "target": {"key": "fleeTarget"}, > "type": {"value": "attack"} 283,284c254,255 < "dialogType": "dialog.flee.safe", < "entity": "fleeTarget" --- > "dialogType": {"value": "dialog.flee.safe"}, > "entity": {"key": "fleeTarget"} behaviors\npc\floranspectator.behavior 6d5 < "/scripts/actions/world.lua", 8,14c7,8 < "/scripts/actions/entity.lua", < "/scripts/actions/math.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/math.lua", > "/scripts/actions/dialog.lua", 39a34 > "title": null, 49c44 < "cooldown": 120 --- > "cooldown": {"value": 120} 62,63c57,58 < "cooldown": 1, < "onFail": true --- > "cooldown": {"value": 1}, > "onFail": {"value": true} 70,73c65,66 < "range": 10, < "entityTypes": [ < "player" < ] --- > "entityTypes": {"value": ["player"]}, > "range": {"value": 10} 96c89 < "chance": 0.25 --- > "chance": {"value": 0.25} 104c97 < "entity": "player" --- > "entity": {"key": "player"} 112,113c105,106 < "entity": "player", < "dialogType": "dialog.converse" --- > "dialogType": {"value": "dialog.converse"}, > "entity": {"key": "player"} 138,141c131 < "time": [ < 2, < 10 < ] --- > "time": {"value": [2, 10]} 149c139 < "direction": "moveDirection" --- > "direction": {"key": "moveDirection"} 160,161c150,151 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 169c159 < "direction": "moveDirection" --- > "direction": {"key": "moveDirection"} 177,180c167 < "time": [ < 1, < 3 < ] --- > "time": {"value": [1, 3]} behaviors\npc\follower.behavior 34,35c34,35 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 43c43 < "trackingRange": 100 --- > "trackingRange": {"value": 100} 58,63c58 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 70,71c65,66 < "cooldown": 1, < "onFail": false --- > "cooldown": {"value": 1}, > "onFail": {"value": false} 78,84c73,77 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 20, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 20}, > "withoutEntity": {"key": "self"} 96c89 < "entity": "player" --- > "entity": {"key": "player"} 109,114c102 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 126,127c114,115 < "list": "seenplayers", < "entity": "player" --- > "entity": {"key": "player"}, > "list": {"key": "seenplayers"} 136,137c124,128 < "list": "seenplayers", < "entity": "player" --- > "entity": {"key": "player"}, > "list": {"key": "seenplayers"} > }, > "output" : { > "list" : "seenplayers" 145,147c136,138 < "dialogType": "dialog.follower.join", < "entity": "player", < "tags": {} --- > "dialogType": {"value": "dialog.follower.join"}, > "entity": {"key": "player"}, > "tags": {"value": {}} 157,159c148,150 < "dialogType": "dialog.follower.returnFromWait", < "entity": "player", < "tags": {} --- > "dialogType": {"value": "dialog.follower.returnFromWait"}, > "entity": {"key": "player"}, > "tags": {"value": {}} 181,182c172,173 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 190c181 < "trackingRange": 100 --- > "trackingRange": {"value": 100} 197,202c188 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 209c195 < "name": "inCombat" --- > "name": {"value": "inCombat"} 217,219c203,205 < "dialogType": "dialog.follower.attack", < "entity": "player", < "tags": {} --- > "dialogType": {"value": "dialog.follower.attack"}, > "entity": {"key": "player"}, > "tags": {"value": {}} 253c239 < "name": "inCombat" --- > "name": {"key": "inCombat"} 261,266c247 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 273,275c254,256 < "dialogType": "dialog.follower.returnFromCombat", < "entity": "player", < "tags": {} --- > "dialogType": {"value": "dialog.follower.returnFromCombat"}, > "entity": {"key": "player"}, > "tags": {"value": {}} 283c264 < "name": "inCombat" --- > "name": {"value": "inCombat"} 297,302c278 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 309c285 < "name": "waiting" --- > "name": {"key": "waiting"} 322,323c298,299 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 330,335c306 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 348c319 < "name": "waiting" --- > "name": {"value": "waiting"} 375,376c346,347 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 390,392c361,363 < "entity": "player", < "range": 50, < "position": "self" --- > "entity": {"key": "player"}, > "position": {"key": "self"}, > "range": {"value": 50} 405,406c376,377 < "content": "I couldn't keep up...", < "tags": {} --- > "content": {"value": "I couldn't keep up..."}, > "tags": {"value": {}} 417c388 < "entity": "player" --- > "entity": {"key": "player"} 427,432c398 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 444c410 < "name": "waiting" --- > "name": {"key": "waiting"} 457,462c423 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 475,477c436,438 < "dialogType": "dialog.follower.wait", < "entity": "player", < "tags": {} --- > "dialogType": {"value": "dialog.follower.wait"}, > "entity": {"key": "player"}, > "tags": {"value": {}} 485c446 < "name": "waiting" --- > "name": {"value": "waiting"} 509,514c470 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 521,523c477,479 < "entity": "player", < "range": 10, < "position": "self" --- > "entity": {"key": "player"}, > "position": {"key": "self"}, > "range": {"value": 10} 531c487 < "entity": "player" --- > "entity": {"key": "player"} 545c501 < "entity": "player" --- > "entity": {"key": "player"} 555,556c511,512 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 569,571c525,527 < "entity": "player", < "range": 5, < "position": "self" --- > "entity": {"key": "player"}, > "position": {"key": "self"}, > "range": {"value": 5} 580,581c536,537 < "cooldown": 1, < "onFail": true --- > "cooldown": {"value": 1}, > "onFail": {"value": true} 593,598c549 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 610,612c561,563 < "entity": "player", < "range": 15, < "position": "self" --- > "entity": {"key": "player"}, > "position": {"key": "self"}, > "range": {"value": 15} 626,632c577,582 < "avoidLiquid": true, < "groundPosition": true, < "maxGround": 5, < "minGround": -20, < "position": "playerPosition", < "run": true, < "failFast": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -20}, > "position": {"key": "playerPosition"}, > "run": {"value": true} 634,636c584 < "output": { < "direction": "direction" < } --- > "output": {} 646,652c594,599 < "avoidLiquid": true, < "groundPosition": true, < "maxGround": 5, < "minGround": -20, < "position": "playerPosition", < "run": "", < "failFast": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -20}, > "position": {"key": "playerPosition"}, > "run": {"key": ""} 654,656c601 < "output": { < "direction": "direction" < } --- > "output": {} 660,667d604 < }, < { < "title": "faceDirection", < "type": "action", < "name": "faceDirection", < "parameters": { < "direction": "direction" < } 682,687c619 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 694c626 < "time": 2 --- > "time": {"value": 2} 702,703c634,635 < "content": "I can't reach you, help!", < "tags": {} --- > "content": {"value": "I can't reach you, help!"}, > "tags": {"value": {}} 736c668 < "play": "" --- > "play": {"key": ""} 741c673 < } \ No newline at end of file --- > } behaviors\npc\guard.behavior 13,16c13 < "hostileDamageTeam": { < "type": "enemy", < "team": 1 < } --- > "hostileDamageTeam": {"type": "enemy", "team": 1} 47,48c44,45 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 56,60c53,57 < "hostileDamageTeam": "", < "losTime": 8, < "queryRange": 50, < "trackingRange": 50, < "attackOnSight": "attackOnSight" --- > "attackOnSight": {"key": "attackOnSight"}, > "hostileDamageTeam": {"value": ""}, > "losTime": {"value": 8}, > "queryRange": {"value": 50}, > "trackingRange": {"value": 50} 70,75c67 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 82c74 < "name": "inCombat" --- > "name": {"value": "inCombat"} 101c93 < "chance": 0.75 --- > "chance": {"value": 0.75} 108,113c100 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 120,123c107,108 < "entity": "target", < "types": [ < "player" < ] --- > "entity": {"key": "target"}, > "types": {"value": ["player"]} 137,138c122,123 < "list": "seenplayers", < "entity": "target" --- > "entity": {"key": "target"}, > "list": {"key": "seenplayers"} 151,152c136,140 < "list": "seenplayers", < "entity": "target" --- > "entity": {"key": "target"}, > "list": {"key": "seenplayers"} > }, > "output" : { > "list" : "seenplayers" 163,165c151,153 < "dialogType": "dialog.reattack", < "entity": "target", < "tags": {} --- > "dialogType": {"value": "dialog.reattack"}, > "entity": {"key": "target"}, > "tags": {"value": {}} 175,177c163,165 < "dialogType": "dialog.attack", < "entity": "target", < "tags": {} --- > "dialogType": {"value": "dialog.attack"}, > "entity": {"key": "target"}, > "tags": {"value": {}} 214c202 < "name": "inCombat" --- > "name": {"key": "inCombat"} 222,227c210 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 234c217 < "name": "inCombat" --- > "name": {"value": "inCombat"} 248c231 < "chance": 0.75 --- > "chance": {"value": 0.75} 255,260c238 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 267c245 < "entity": "target" --- > "entity": {"key": "target"} 275,277c253,255 < "dialogType": "dialog.lostTarget", < "entity": "target", < "tags": {} --- > "dialogType": {"value": "dialog.lostTarget"}, > "entity": {"key": "target"}, > "tags": {"value": {}} 287,289c265,267 < "dialogType": "dialog.killedTarget", < "entity": "target", < "tags": {} --- > "dialogType": {"value": "dialog.killedTarget"}, > "entity": {"key": "target"}, > "tags": {"value": {}} 301a280 > "title": null, 311c290 < "play": "" --- > "play": {"key": ""} 316c295 < } \ No newline at end of file --- > } behaviors\npc\hail.behavior 2a3 > "description": "", 15,17c16,18 < "cooldown": 30, < "onFail": false, < "onSuccess": true --- > "cooldown": {"value": 30}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 23,28c24 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 35,37c31,33 < "cooldown": 2, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 2}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 44,50c40,44 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 15, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 15}, > "withoutEntity": {"key": "self"} 66,71c60 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 78c67 < "chance": 0.25 --- > "chance": {"value": 0.25} 91,92c80,81 < "list": "attackonsight", < "entity": "player" --- > "entity": {"key": "player"}, > "list": {"key": "attackonsight"} 101,103c90,92 < "dialogType": "dialog.hail", < "entity": "player", < "tags": {} --- > "dialogType": {"value": "dialog.hail"}, > "entity": {"key": "player"}, > "tags": {"value": {}} behaviors\npc\hostileguard.behavior 11,12c11 < "play": false, < "combatParameters": {} --- > "play": false 37,38c36,37 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 46c45 < "trackingRange": 100 --- > "trackingRange": {"value": 100} 53,58c52 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 65c59 < "name": "inCombat" --- > "name": {"value": "inCombat"} 84c78 < "chance": 0.75 --- > "chance": {"value": 0.75} 91,96c85 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 103,106c92,93 < "entity": "target", < "types": [ < "player" < ] --- > "entity": {"key": "target"}, > "types": {"value": ["player"]} 120,121c107,108 < "list": "seenplayers", < "entity": "target" --- > "entity": {"key": "target"}, > "list": {"key": "seenplayers"} 134,135c121,125 < "list": "seenplayers", < "entity": "target" --- > "entity": {"key": "target"}, > "list": {"key": "seenplayers"} > }, > "output" : { > "list" : "seenplayers" 146,148c136,138 < "dialogType": "dialog.reattack", < "entity": "target", < "tags": {} --- > "dialogType": {"value": "dialog.reattack"}, > "entity": {"key": "target"}, > "tags": {"value": {}} 158,160c148,150 < "dialogType": "dialog.attack", < "entity": "target", < "tags": {} --- > "dialogType": {"value": "dialog.attack"}, > "entity": {"key": "target"}, > "tags": {"value": {}} 170,172c160 < "parameters": { < "combatParameters": "" < } --- > "parameters": {} 199c187 < "name": "inCombat" --- > "name": {"key": "inCombat"} 207,212c195 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 219c202 < "name": "inCombat" --- > "name": {"value": "inCombat"} 233c216 < "chance": 0.75 --- > "chance": {"value": 0.75} 240,245c223 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 252c230 < "entity": "target" --- > "entity": {"key": "target"} 260,262c238,240 < "dialogType": "dialog.lostTarget", < "entity": "target", < "tags": {} --- > "dialogType": {"value": "dialog.lostTarget"}, > "entity": {"key": "target"}, > "tags": {"value": {}} 272,274c250,252 < "dialogType": "dialog.killedTarget", < "entity": "target", < "tags": {} --- > "dialogType": {"value": "dialog.killedTarget"}, > "entity": {"key": "target"}, > "tags": {"value": {}} 291c269 < "play": "" --- > "play": {"key": ""} 296c274 < } \ No newline at end of file --- > } behaviors\npc\hostiletracking.behavior 5,6d4 < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", 8c6,7 < "/scripts/behavior.lua", --- > "/scripts/actions/world.lua", > "/scripts/behavior.lua", 9a9 > "/scripts/actions/query.lua", 22,23c22,23 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 31,32c31,32 < "list": "targets", < "type": "entity" --- > "list": {"key": "targets"}, > "type": {"value": "entity"} 39c39 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 78,83c78,79 < "entity": "damageSource", < "types": [ < "monster", < "npc", < "player" < ] --- > "entity": {"key": "damageSource"}, > "types": {"value": ["monster", "npc", "player"]} 91,92c87,88 < "entity": "damageSource", < "range": "" --- > "entity": {"key": "damageSource"}, > "range": {"key": ""} 105,106c101,102 < "list": "targets", < "entity": "damageSource" --- > "entity": {"key": "damageSource"}, > "list": {"key": "targets"} 115c111 < "entity": "damageSource" --- > "entity": {"key": "damageSource"} 123c119 < "entity": "damageSource" --- > "entity": {"key": "damageSource"} 134,140c130,134 < "position": "self", < "range": 40, < "entityTypes": [ < "npc" < ], < "type": "attack", < "target": "newTarget" --- > "entityTypes": {"value": ["npc"]}, > "position": {"key": "self"}, > "range": {"value": 40}, > "target": {"key": "newTarget"}, > "type": {"value": "attack"} 149,154c143 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 161c150 < "type": "attack" --- > "type": {"value": "attack"} 178,179c167,168 < "list": "targets", < "entity": "notificationTarget" --- > "entity": {"key": "notificationTarget"}, > "list": {"key": "targets"} 193c182 < "entity": "notificationSource" --- > "entity": {"key": "notificationSource"} 202c191 < "entity": "notificationTarget" --- > "entity": {"key": "notificationTarget"} 210c199 < "entity": "notificationSource" --- > "entity": {"key": "notificationSource"} 218c207 < "entity": "notificationTarget" --- > "entity": {"key": "notificationTarget"} 230,235c219 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 247c231 < "list": "targets" --- > "list": {"key": "targets"} 259,260c243,244 < "cooldown": 1, < "onFail": true --- > "cooldown": {"value": 1}, > "onFail": {"value": true} 267,275c251,255 < "entityTypes": [ < "monster", < "npc", < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": "", < "withoutEntity": "self" --- > "entityTypes": {"value": ["monster", "npc", "player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"key": ""}, > "withoutEntity": {"key": "self"} 287,288c267,268 < "list": "queriedTargets", < "type": "entity" --- > "list": {"key": "queriedTargets"}, > "type": {"value": "entity"} 294,299c274 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 311,312c286,287 < "list": "targets", < "entity": "filterItem" --- > "entity": {"key": "filterItem"}, > "list": {"key": "targets"} 321c296 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 329c304 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 340c315 < "list": "queriedTargets" --- > "list": {"key": "queriedTargets"} 358,359c333,334 < "type": "entity", < "key": "newTarget" --- > "key": {"value": "newTarget"}, > "type": {"value": "entity"} 370c345,348 < "entity": "newTarget", --- > "entity": {"key": "newTarget"}, > "list": {"key": "targets"} > }, > "output" : { 383,388c361 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 395,398c368,369 < "entity": "newTarget", < "types": [ < "player" < ] --- > "entity": {"key": "newTarget"}, > "types": {"value": ["player"]} 411,412c382,383 < "list": "attackonsight", < "entity": "newTarget" --- > "entity": {"key": "newTarget"}, > "list": {"key": "attackonsight"} 421,422c392,396 < "list": "attackonsight", < "entity": "newTarget" --- > "entity": {"key": "newTarget"}, > "list": {"key": "attackonsight"} > }, > "output" : { > "list" : "attackonsight" 433c407 < "list": "targets" --- > "list": {"key": "targets"} 445,450c419 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 457,458c426,427 < "list": "targets", < "type": "entity" --- > "list": {"key": "targets"}, > "type": {"value": "entity"} 464,469c433 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 476c440 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 484,485c448,449 < "entity": "filterItem", < "range": "" --- > "entity": {"key": "filterItem"}, > "range": {"key": ""} 499c463 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 512,513c476,480 < "list": "outOfSight", < "entity": "filterItem" --- > "entity": {"key": "filterItem"}, > "list": {"key": "outOfSight"} > }, > "output" : { > "list" : "outOfSight" 527c494 < "list": "targets" --- > "list": {"key": "targets"} 543,545c510,512 < "cooldown": 3, < "onFail": false, < "onSuccess": true --- > "cooldown": {"value": 3}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 552,558c519,523 < "position": "self", < "range": 40, < "entityTypes": [ < "npc" < ], < "type": "attack", < "target": "target" --- > "entityTypes": {"value": ["npc"]}, > "position": {"key": "self"}, > "range": {"value": 40}, > "target": {"key": "target"}, > "type": {"value": "attack"} 570,571c535,536 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 578,583c543 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 590,591c550,551 < "list": "outOfSight", < "type": "entity" --- > "list": {"key": "outOfSight"}, > "type": {"value": "entity"} 597,602c557 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 609c564 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 617,618c572,573 < "entity": "filterItem", < "range": "" --- > "entity": {"key": "filterItem"}, > "range": {"key": ""} 637c592 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 651c606,609 < "entity": "filterItem", --- > "entity": {"key": "filterItem"}, > "list": {"key": "targets"} > }, > "output" : { 672c630 < "list": "outOfSight" --- > "list": {"key": "outOfSight"} 683c641 < "list": "targets" --- > "list": {"key": "targets"} 697,702c655 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 709c662 < "time": 10 --- > "time": {"value": 10} 716c669,670 < "parameters": { --- > "parameters": {}, > "output": { 728c682 < } \ No newline at end of file --- > } behaviors\npc\idle.behavior 38,39c38,39 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 52,54c52,54 < "cooldown": "", < "onFail": false, < "onSuccess": true --- > "cooldown": {"key": ""}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 62a63 > "title": null, 72c73 < "key": "homePosition" --- > "key": {"value": "homePosition"} 97,102c98 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 115c111 < "type": "friendly" --- > "type": {"value": "friendly"} 123c119 < "type": "assistant" --- > "type": {"value": "assistant"} 142a139 > "title": null, 151,156c148 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 163c155 < "type": "questOfferAccepted" --- > "type": {"value": "questOfferAccepted"} 174c166 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 182c174 < "influence": "questaccepted" --- > "influence": {"value": "questaccepted"} 193,194c185,186 < "sendInfluence": false, < "faceReactTarget": true --- > "sendInfluence": {"value": false}, > "faceReactTarget": {"value": true} 209,214c201 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 221c208 < "type": "questOfferDeclined" --- > "type": {"value": "questOfferDeclined"} 232c219 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 240c227 < "influence": "questdeclined" --- > "influence": {"value": "questdeclined"} 251,252c238,239 < "sendInfluence": false, < "faceReactTarget": true --- > "sendInfluence": {"value": false}, > "faceReactTarget": {"value": true} 265a253 > "title": null, 275c263 < "shouldRun": "" --- > "shouldRun": {"key": ""} 282,284c270,272 < "cooldown": "", < "onFail": false, < "onSuccess": true --- > "cooldown": {"key": ""}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 290,295c278 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 307c290 < "name": "nochat" --- > "name": {"key": "nochat"} 315c298,299 < "parameters": { --- > "parameters": {}, > "output": { 319a304 > "title": null, 329c314 < "type": "chatrequest" --- > "type": {"value": "chatrequest"} 339,344c324 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 357,359c337,339 < "cooldown": 1, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 1}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 366,372c346,350 < "entityTypes": [ < "npc" < ], < "orderBy": "nearest", < "position": "self", < "range": 3, < "withoutEntity": "self" --- > "entityTypes": {"value": ["npc"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 3}, > "withoutEntity": {"key": "self"} 384,386c362,364 < "entity": "chatfriend", < "range": 3, < "position": "self" --- > "entity": {"key": "chatfriend"}, > "position": {"key": "self"}, > "range": {"value": 3} 399,400c377,378 < "type": "entity", < "key": "chatfriend" --- > "key": {"value": "chatfriend"}, > "type": {"value": "entity"} 411c389 < "entity": "chatfriend" --- > "entity": {"key": "chatfriend"} 419,420c397,398 < "type": "chatrequest", < "entity": "chatfriend" --- > "entity": {"key": "chatfriend"}, > "type": {"value": "chatrequest"} 432,433c410,414 < "list": "chatfriends", < "entity": "self" --- > "entity": {"key": "self"}, > "list": {"key": "chatfriends"} > }, > "output": { > "list": "chatfriends" 441,442c422,426 < "list": "chatfriends", < "entity": "chatfriend" --- > "entity": {"key": "chatfriend"}, > "list": {"key": "chatfriends"} > }, > "output": { > "list": "chatfriends" 460,462c444,446 < "cooldown": "", < "onFail": false, < "onSuccess": true --- > "cooldown": {"key": ""}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 469,470c453,454 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 495c479 < "overrideName": "follow" --- > "overrideName": {"value": "follow"} 509c493 < "overrideName": "flee" --- > "overrideName": {"value": "flee"} 543c527 < "influence": "hasquest" --- > "influence": {"value": "hasquest"} 554,555c538,539 < "type": "entity", < "key": "reactTarget" --- > "key": {"value": "reactTarget"}, > "type": {"value": "entity"} 563c547 < "sendInfluence": false --- > "sendInfluence": {"value": false} 580c564 < "time": "" --- > "time": {"value": ""} 593c577 < "shouldRun": "" --- > "shouldRun": {"key": ""} 599,604c583 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 623c602 < "time": 10 --- > "time": {"value": 10} 643c622 < "name": "beamoutanddie" --- > "name": {"value": "beamoutanddie"} 657c636 < "dropPools": [] --- > "dropPools": {"value": []} 665c644 < "time": 20 --- > "time": {"value": 20} 673a653 > "title": null, 682,687c662 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 695a671 > "title": null, 705,707c681,683 < "position": "self", < "target": "spawn", < "range": 8 --- > "position": {"key": "self"}, > "range": {"value": 8}, > "target": {"key": "spawn"} 715c691 < "overrideName": "follow" --- > "overrideName": {"value": "follow"} 723c699 < "overrideName": "flee" --- > "overrideName": {"value": "flee"} 741,743c717,719 < "cooldown": 120, < "onFail": false, < "onSuccess": true --- > "cooldown": {"value": 120}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 749,754c725 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 761,763c732,734 < "cooldown": 5, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 5}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 770,776c741,745 < "entityTypes": [ < "npc" < ], < "orderBy": "nearest", < "position": "self", < "range": 20, < "withoutEntity": "self" --- > "entityTypes": {"value": ["npc"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 20}, > "withoutEntity": {"key": "self"} 788c757 < "entity": "nearNpc" --- > "entity": {"key": "nearNpc"} 796c765 < "influence": "nearnpc" --- > "influence": {"value": "nearnpc"} 807c776 < "entity": "nearNpc" --- > "entity": {"key": "nearNpc"} 818c787 < "sendInfluence": false --- > "sendInfluence": {"value": false} 835,837c804,806 < "cooldown": "", < "onFail": false, < "onSuccess": true --- > "cooldown": {"key": ""}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 843,848c812 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 855,857c819,821 < "cooldown": 5, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 5}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 864,870c828,832 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 20, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 20}, > "withoutEntity": {"key": "self"} 882c844 < "entity": "nearPlayer" --- > "entity": {"key": "nearPlayer"} 890c852 < "influence": "nearplayer" --- > "influence": {"value": "nearplayer"} 901c863 < "entity": "nearPlayer" --- > "entity": {"key": "nearPlayer"} 912,913c874,875 < "sendInfluence": false, < "faceReactTarget": true --- > "sendInfluence": {"value": false}, > "faceReactTarget": {"value": true} 930,932c892,894 < "cooldown": "", < "onFail": false, < "onSuccess": true --- > "cooldown": {"key": ""}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 939c901 < "shouldRun": "" --- > "shouldRun": {"key": ""} 945,950c907 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 957c914 < "chance": 0.25 --- > "chance": {"value": 0.25} 974,979c931 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 986c938 < "influence": "spontaneous" --- > "influence": {"value": "spontaneous"} 997,998c949,950 < "type": "entity", < "key": "reactTarget" --- > "key": {"value": "reactTarget"}, > "type": {"value": "entity"} 1006c958 < "sendInfluence": false --- > "sendInfluence": {"value": false} behaviors\npc\inspect.behavior 6d5 < "/scripts/actions/world.lua", 8,9c7,8 < "/scripts/actions/entity.lua", < "/scripts/actions/movement.lua", --- > "/scripts/actions/world.lua", > "/scripts/actions/movement.lua", 21,26c20 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 44c38 < "name": "firstInspectionSkipped" --- > "name": {"key": "firstInspectionSkipped"} 52,57c46 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 69c58 < "property": "ship.level" --- > "property": {"value": "ship.level"} 83,85c72,74 < "cooldown": 30, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 30}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 92,98c81,85 < "entityTypes": [ < "object" < ], < "orderBy": "random", < "position": "self", < "range": "", < "withoutEntity": "self" --- > "entityTypes": {"value": ["object"]}, > "orderBy": {"value": "random"}, > "position": {"key": "self"}, > "range": {"key": ""}, > "withoutEntity": {"key": "self"} 111,112c98,99 < "list": "inspectTargets", < "type": "entity" --- > "list": {"key": "inspectTargets"}, > "type": {"value": "entity"} 118,123c105 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 130c112 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 138,140c120,122 < "entity": "filterItem", < "range": "", < "position": "self" --- > "entity": {"key": "filterItem"}, > "position": {"key": "self"}, > "range": {"key": ""} 151c133 < "list": "inspectTargets" --- > "list": {"key": "inspectTargets"} 153a136 > "list" : "inspectTargets", 162c145 < "entity": "inspectTarget" --- > "entity": {"key": "inspectTarget"} 173,174c156,157 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 182c165 < "entity": "target" --- > "entity": {"key": "target"} 193,194c176,177 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 202,204c185,187 < "entity": "target", < "range": "", < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "range": {"key": ""} 212,219c195,201 < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "pathOptions": {}, < "position": "position", < "run": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "pathOptions": {"value": {}}, > "position": {"key": "position"}, > "run": {"value": false} 222d203 < "direction": "direction", 235c216 < "entity": "target" --- > "entity": {"key": "target"} 243c224 < "entity": "target" --- > "entity": {"key": "target"} 251c232 < "time": 4 --- > "time": {"value": 4} 263c244 < "name": "firstInspectionSkipped" --- > "name": {"value": "firstInspectionSkipped"} 268c249 < } \ No newline at end of file --- > } behaviors\npc\lounger.behavior 19,20c19,20 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 34,38c34,38 < "position": "spawn", < "range": 30, < "orderBy": "nearest", < "orientation": "sit", < "unoccupied": true --- > "orderBy": {"value": "nearest"}, > "orientation": {"value": "sit"}, > "position": {"key": "spawn"}, > "range": {"value": 30}, > "unoccupied": {"value": true} 49c49 < "entity": "chair" --- > "entity": {"key": "chair"} 60,61c60,61 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 69c69 < "entity": "chair" --- > "entity": {"key": "chair"} 77,78c77,78 < "groundPosition": true, < "position": "chair" --- > "groundPosition": {"value": true}, > "position": {"key": "chair"} 81,89d80 < "direction": "direction" < } < }, < { < "title": "faceDirection", < "type": "action", < "name": "faceDirection", < "parameters": { < "direction": "direction" 92a84 > "title": null, 96a89 > "title": null, 100c93 < "entity": "chair" --- > "entity": {"key": "chair"} 111,112c104,105 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 120c113 < "entity": "chair" --- > "entity": {"key": "chair"} 128c121 < "entity": "chair" --- > "entity": {"key": "chair"} 158,159c151,152 < "dialogType": "dialog.converse", < "entity": "interactionSource" --- > "dialogType": {"value": "dialog.converse"}, > "entity": {"key": "interactionSource"} 167,170c160 < "time": 1 < }, < "output": { < "ratio": "" --- > "time": {"value": 1} 177c167 < } \ No newline at end of file --- > } behaviors\npc\merchant.behavior 32,33c32,33 < "default": -1, < "path": "merchant.storeRadius" --- > "default": {"value": -1}, > "path": {"value": "merchant.storeRadius"} 44,45c44,45 < "default": 40, < "path": "merchant.waitTime" --- > "default": {"value": 40}, > "path": {"value": "merchant.waitTime"} 56,57c56,57 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 82,83c82,83 < "first": "storeRadius", < "second": 0 --- > "first": {"key": "storeRadius"}, > "second": {"value": 0} 92,94c92,94 < "position": "self", < "target": "spawn", < "range": "storeRadius" --- > "position": {"key": "self"}, > "range": {"key": "storeRadius"}, > "target": {"key": "spawn"} 119a120 > "title": null, 147c148 < "entity": "interactionSource" --- > "entity": {"key": "interactionSource"} 158c159 < "entity": "interactionSource" --- > "entity": {"key": "interactionSource"} 195,196c196,197 < "first": "storeRadius", < "second": 0 --- > "first": {"key": "storeRadius"}, > "second": {"value": 0} 205,207c206,208 < "position": "self", < "target": "spawn", < "range": "storeRadius" --- > "position": {"key": "self"}, > "range": {"key": "storeRadius"}, > "target": {"key": "spawn"} 217,218c218,219 < "dialogType": "dialog.merchant.start", < "entity": "customer" --- > "dialogType": {"value": "dialog.merchant.start"}, > "entity": {"key": "customer"} 234,235c235,236 < "dialogType": "dialog.merchant.follow", < "entity": "customer" --- > "dialogType": {"value": "dialog.merchant.follow"}, > "entity": {"key": "customer"} 260,262c261,263 < "entity": "customer", < "range": "storeRadius", < "position": "self" --- > "entity": {"key": "customer"}, > "position": {"key": "self"}, > "range": {"key": "storeRadius"} 270,271c271,272 < "dialogType": "dialog.merchant.welcome", < "entity": "customer" --- > "dialogType": {"value": "dialog.merchant.welcome"}, > "entity": {"key": "customer"} 286,288c287,289 < "entity": "customer", < "range": 6, < "position": "self" --- > "entity": {"key": "customer"}, > "position": {"key": "self"}, > "range": {"value": 6} 296c297 < "entity": "customer" --- > "entity": {"key": "customer"} 309,310c310,311 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 330,332c331,333 < "entity": "customer", < "range": 6, < "position": "self" --- > "entity": {"key": "customer"}, > "position": {"key": "self"}, > "range": {"value": 6} 340c341 < "time": 1 --- > "time": {"value": 1} 356c357 < "entity": "customer" --- > "entity": {"key": "customer"} 375,376c376,377 < "dialogType": "dialog.merchant.end", < "entity": "customer" --- > "dialogType": {"value": "dialog.merchant.end"}, > "entity": {"key": "customer"} 394,395c395,396 < "first": "", < "second": 0 --- > "first": {"key": ""}, > "second": {"value": 0} 403,405c404,406 < "cooldown": 20, < "onFail": false, < "onSuccess": true --- > "cooldown": {"value": 20}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 412,413c413,414 < "cooldown": 1, < "onFail": true --- > "cooldown": {"value": 1}, > "onFail": {"value": true} 420,426c421,425 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": "", < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"key": ""}, > "withoutEntity": {"key": "self"} 439c438 < "entity": "customer" --- > "entity": {"key": "customer"} 447c446 < "entity": "customer" --- > "entity": {"key": "customer"} 461,462c460,461 < "dialogType": "dialog.merchant.tout", < "entity": "customer" --- > "dialogType": {"value": "dialog.merchant.tout"}, > "entity": {"key": "customer"} 480,481c479,480 < "play": "", < "beamOutWhenNotInUse": "" --- > "play": {"value": ""}, > "beamOutWhenNotInUse": {"value": ""} behaviors\npc\npcblink.behavior 15,20c15 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 27,30c22,25 < "avoidLiquid": true, < "maxHeight": 5, < "minHeight": -5, < "position": "targetPosition" --- > "avoidLiquid": {"value": true}, > "maxHeight": {"value": 5}, > "minHeight": {"value": -5}, > "position": {"key": "targetPosition"} 41,42c36,37 < "name": "camouflage0", < "duration": 1 --- > "duration": {"value": 1}, > "name": {"value": "camouflage0"} 50c45 < "name": "blinkout" --- > "name": {"value": "blinkout"} 58c53 < "time": 0.5 --- > "time": {"value": 0.5} 66,67c61,62 < "footPosition": false, < "position": "targetPosition" --- > "footPosition": {"value": false}, > "position": {"key": "targetPosition"} 75c70 < "time": 0.25 --- > "time": {"value": 0.25} 83c78 < "name": "camouflage0" --- > "name": {"value": "camouflage0"} 91c86 < "name": "blinkin" --- > "name": {"value": "blinkin"} behaviors\npc\outpostvisitor.behavior 2a3 > "description": "", 6,10c7 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 15,18c12 < "stayTime": [ < 10, < 60 < ] --- > "stayTime": [10, 60] 31,32c25,26 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 40,42c34,36 < "cooldown": "", < "onFail": false, < "onSuccess": true --- > "cooldown": {"key": ""}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 49c43 < "time": "" --- > "time": {"value": ""} 59a54 > "title": null, 69c64 < "play": "" --- > "play": {"value": ""} 86,91c81 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 103,110c93,99 < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "pathOptions": {}, < "position": "spawn", < "run": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "pathOptions": {"value": {}}, > "position": {"key": "spawn"}, > "run": {"value": false} 119,122c108 < "time": 1 < }, < "output": { < "ratio": "" --- > "time": {"value": 1} 142c128 < "name": "beamoutanddie" --- > "name": {"value": "beamoutanddie"} 150c136 < "time": 1 --- > "time": {"value": 1} behaviors\npc\pather.behavior 5d4 < "/scripts/actions/world.lua", 7,8c6,7 < "/scripts/actions/entity.lua", < "/scripts/actions/movement.lua" --- > "/scripts/actions/world.lua", > "/scripts/actions/movement.lua" 15,20c14 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 27,33c21,25 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 50, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 50}, > "withoutEntity": {"key": "self"} 44,45c36,37 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 53c45 < "entity": "player" --- > "entity": {"key": "player"} 64,70c56,61 < "avoidLiquid": true, < "groundPosition": true, < "maxGround": 5, < "minGround": -25, < "position": "targetPosition", < "run": false, < "failFast": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -25}, > "position": {"key": "targetPosition"}, > "run": {"value": false} 72,74c63 < "output": { < "direction": "direction" < } --- > "output": {} 80c69 < } \ No newline at end of file --- > } behaviors\npc\patrol.behavior 2a3 > "description": "", 9,12c10 < "idleTime": [ < 2, < 10 < ], --- > "idleTime": [2, 10], 16a15 > "title": null, 26,27c25,26 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 34,39c33 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 46,53c40,52 < "avoidLiquid": true, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "position": "spawn", < "run": "", < "failFast": false < }, --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "position": {"key": "spawn"}, > "run": {"key": ""} > } > }, > { > "title": "setDirection", > "type": "action", > "name": "setDirection", > "parameters": {}, 55c54 < "direction": "direction" --- > "direction": "patrolDirection" 68,69c67,68 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 83,84c82,83 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 97,98c96 < "direction": "facing", < "distance": 2 --- > "distance": {"value": 2} 107,108c105,106 < "direction": "direction", < "run": "" --- > "direction": {"key": "patrolDirection"}, > "run": {"key": ""} 122,127c120 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 139,140c132 < "distance": 3, < "direction": "back" --- > "distance": {"value": 3} 149,157c141,143 < "position": "self", < "offset": [ < "direction", < 0 < ], < "collisionType": [ < "Null", < "Block" < ] --- > "collisionType": {"value": ["Null", "Block"]}, > "offset": {"value": ["facingDirection", 0]}, > "position": {"key": "self"} 165c151 < "direction": "direction" --- > "direction": {"key": "facingDirection"} 168c154 < "direction": "direction" --- > "direction": "reversedDirection" 176c162 < "direction": "direction" --- > "direction": {"key": "reversedDirection"} 189c175 < "time": "" --- > "time": {"value": ""} 196,203d181 < }, < { < "title": "faceDirection", < "type": "action", < "name": "faceDirection", < "parameters": { < "direction": "direction" < } 212c190 < "time": "" --- > "time": {"value": ""} behaviors\npc\play.behavior 26,28c26,28 < "cooldown": 30, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 30}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 35,41c35,39 < "entityTypes": [ < "object" < ], < "orderBy": "random", < "position": "self", < "range": 50, < "withoutEntity": "playTarget" --- > "entityTypes": {"value": ["object"]}, > "orderBy": {"value": "random"}, > "position": {"key": "self"}, > "range": {"value": 50}, > "withoutEntity": {"key": "playTarget"} 52c50,51 < "parameters": { --- > "parameters": {}, > "output": { 61,62c60,61 < "list": "playTargets", < "type": "entity" --- > "list": {"key": "playTargets"}, > "type": {"value": "entity"} 75c74 < "target": "filterItem" --- > "target": {"key": "filterItem"} 83c82 < "target": "filterItem" --- > "target": {"key": "filterItem"} 95,100c94 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 107c101 < "target": "filterItem" --- > "target": {"key": "filterItem"} 115,116c109,113 < "list": "priorityTargets", < "entity": "filterItem" --- > "entity": {"key": "filterItem"}, > "list": {"key": "priorityTargets"} > }, > "output": { > "list": "priorityTargets" 136c133 < "list": "priorityTargets" --- > "list": {"key": "priorityTargets"} 147c144 < "list": "playTargets" --- > "list": {"key": "playTargets"} 160c157 < "entity": "playTarget" --- > "entity": {"key": "playTarget"} 163c160 < "position": "playTarget" --- > "position": "standPosition" 167c164 < "title": "selector", --- > "title": "sequence", 169c166 < "name": "selector", --- > "name": "sequence", 173,228c170,176 < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": {}, < "children": [ < { < "title": "npcToyPreciseStandPosition", < "type": "action", < "name": "npcToyPreciseStandPosition", < "parameters": { < "target": "playTarget" < }, < "output": { < "position": "standPosition", < "x": "standPositionX" < } < }, < { < "title": "moveToPosition", < "type": "action", < "name": "moveToPosition", < "parameters": { < "avoidLiquid": true, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "position": "standPosition", < "run": "", < "failFast": false < }, < "output": { < "direction": "direction" < } < }, < { < "title": "setPosition", < "type": "action", < "name": "setPosition", < "parameters": { < "footPosition": false, < "position": "self", < "x": "standPositionX" < } < }, < { < "title": "setVelocity", < "type": "action", < "name": "setVelocity", < "parameters": { < "velocity": [ < 0, < 0 < ] < } < } < ] --- > "title": "unset", > "type": "action", > "name": "unset", > "parameters": { > "key": {"value": "standPositionX"}, > "type": {"value": "number"} > } 231,233c179,181 < "title": "sequence", < "type": "composite", < "name": "sequence", --- > "title": "succeeder", > "type": "decorator", > "name": "succeeder", 235,258c183,199 < "children": [ < { < "title": "npcToyImpreciseStandPosition", < "type": "action", < "name": "npcToyImpreciseStandPosition", < "parameters": { < "target": "playTarget" < }, < "output": { < "position": "standPosition" < } < }, < { < "title": "moveToPosition", < "type": "action", < "name": "moveToPosition", < "parameters": { < "avoidLiquid": true, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "position": "standPosition", < "run": "", < "failFast": false --- > "child": { > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "npcToyPreciseStandPosition", > "type": "action", > "name": "npcToyPreciseStandPosition", > "parameters": { > "target": {"key": "playTarget"} > }, > "output": { > "position": "standPosition", > "x": "standPositionX" > } 260,261c201,210 < "output": { < "direction": "direction" --- > { > "title": "npcToyImpreciseStandPosition", > "type": "action", > "name": "npcToyImpreciseStandPosition", > "parameters": { > "target": {"key": "playTarget"} > }, > "output": { > "position": "standPosition" > } 263,264c212,213 < } < ] --- > ] > } 271,277c220,265 < "avoidLiquid": true, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "position": "playTarget", < "run": false, < "failFast": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "position": {"key": "standPosition"}, > "run": {"key": ""} > } > }, > { > "title": "succeeder", > "type": "decorator", > "name": "succeeder", > "parameters": {}, > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "setNumber", > "type": "action", > "name": "setNumber", > "parameters": { > "number": {"key": "standPositionX"} > } > }, > { > "title": "setPosition", > "type": "action", > "name": "setPosition", > "parameters": { > "footPosition": {"value": false}, > "position": {"key": "self"}, > "x": {"key": "standPositionX"} > } > }, > { > "title": "setVelocity", > "type": "action", > "name": "setVelocity", > "parameters": { > "velocity": {"value": [0, 0]} > } > } > ] 283c271 < "title": "faceEntity", --- > "title": "entityExists", 285c273 < "name": "faceEntity", --- > "name": "entityExists", 287c275 < "entity": "playTarget" --- > "entity": {"key": "playTarget"} 295,296c283,284 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 304c292 < "entity": "playTarget" --- > "entity": {"key": "playTarget"} 314,319c302 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 326c309 < "entity": "playTarget" --- > "entity": {"key": "playTarget"} 337,338c320,321 < "maxLoops": -1, < "untilSuccess": true --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": true} 349,354c332 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 361c339 < "list": "influences" --- > "list": {"key": "influences"} 363a342 > "list": "influences", behaviors\npc\protectoratejanitor.behavior 23c23 < "direction": 1 --- > "direction": {"value": 1} 35a36 > "title": null, 45c46 < "cooldown": 120 --- > "cooldown": {"value": 120} 58,59c59,60 < "cooldown": 1, < "onFail": true --- > "cooldown": {"value": 1}, > "onFail": {"value": true} 66,69c67,68 < "range": 10, < "entityTypes": [ < "player" < ] --- > "entityTypes": {"value": ["player"]}, > "range": {"value": 10} 92c91 < "entity": "player" --- > "entity": {"key": "player"} 100,102c99,100 < "dialogType": "dialog.complain", < "entity": "player", < "static": false --- > "dialogType": {"value": "dialog.complain"}, > "entity": {"key": "player"} 127,130c125 < "time": [ < 2, < 10 < ] --- > "time": {"value": [2, 10]} 138c133 < "direction": "sweepDirection" --- > "direction": {"key": "sweepDirection"} 149c144 < "direction": "sweepDirection" --- > "direction": {"key": "sweepDirection"} 157,160c152 < "time": [ < 1, < 3 < ] --- > "time": {"value": [1, 3]} 168,169c160,161 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 182,187c174 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 194c181 < "time": 0.5 --- > "time": {"value": 0.5} 202,203c189,190 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 211c198 < "direction": "sweepDirection" --- > "direction": {"key": "sweepDirection"} 219c206 < "time": 2 --- > "time": {"value": 2} behaviors\npc\react.behavior 24,25c24,25 < "influence": "influence", < "target": "reactTarget" --- > "influence": {"key": "influence"}, > "target": {"key": "reactTarget"} 41c41 < "shouldRun": "" --- > "shouldRun": {"key": ""} 48c48 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 62,67c62 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 79c74 < "reaction": "reaction" --- > "reaction": {"key": "reaction"} 94c89 < "reaction": "reaction" --- > "reaction": {"key": "reaction"} 102c97 < "reaction": "reaction" --- > "reaction": {"key": "reaction"} 112c107 < "shouldRun": "" --- > "shouldRun": {"key": ""} 119,120c114,115 < "reaction": "reaction", < "target": "reactTarget" --- > "reaction": {"key": "reaction"}, > "target": {"key": "reactTarget"} behaviors\npc\reactionchat.behavior 11,17c11 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua" --- > "/scripts/actions/npc.lua" 31c25 < "target": "chatfriend" --- > "target": {"key": "chatfriend"} 59,61c53,55 < "relationship": "fears", < "converse": false, < "target": "chatfriend" --- > "converse": {"value": false}, > "relationship": {"value": "fears"}, > "target": {"key": "chatfriend"} 69c63 < "influence": "fearsrelation" --- > "influence": {"value": "fearsrelation"} 88,90c82,84 < "relationship": "likes", < "converse": false, < "target": "chatfriend" --- > "converse": {"value": false}, > "relationship": {"value": "likes"}, > "target": {"key": "chatfriend"} 98c92 < "influence": "likesrelation" --- > "influence": {"value": "likesrelation"} 114c108 < "entity": "chatfriend" --- > "entity": {"key": "chatfriend"} 125c119 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 148,150c142,144 < "cooldown": 2, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 2}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 157,158c151,152 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 166,169c160,163 < "groupId": "chat", < "taskId": "react", < "minMembers": 1, < "maxMembers": 1 --- > "groupId": {"value": "chat"}, > "maxMembers": {"value": 1}, > "minMembers": {"value": 1}, > "taskId": {"value": "react"} 183,184c177,178 < "influence": "influence", < "target": "reactTarget" --- > "influence": {"key": "influence"}, > "target": {"key": "reactTarget"} 200,205c194 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 212c201 < "reaction": "reaction" --- > "reaction": {"key": "reaction"} 220,221c209,210 < "reaction": "reaction", < "target": "chatfriend" --- > "reaction": {"key": "reaction"}, > "target": {"key": "chatfriend"} 230,235c219 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 242c226 < "time": 1 --- > "time": {"value": 1} 261c245 < "reaction": "reaction" --- > "reaction": {"key": "reaction"} 269c253 < "reaction": "reaction" --- > "reaction": {"key": "reaction"} 280,281c264,265 < "reaction": "reaction", < "target": "chatfriend" --- > "reaction": {"key": "reaction"}, > "target": {"key": "chatfriend"} 319c303 < "time": 0.5 --- > "time": {"value": 0.5} 327,329c311,313 < "entity": "reactTarget", < "xRange": 5, < "position": "self" --- > "entity": {"key": "reactTarget"}, > "position": {"key": "self"}, > "xRange": {"value": 5} 337c321 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 345c329 < "emote": "blabbering" --- > "emote": {"value": "blabbering"} 353,354c337,338 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 363,364c347 < "influence": "influence", < "source": "reactTarget" --- > "influence": "influence" behaviors\npc\reactionplayer.behavior 22,23c22,23 < "influence": "influence", < "target": "reactTarget" --- > "influence": {"key": "influence"}, > "target": {"key": "reactTarget"} 34c34 < "time": 0.25 --- > "time": {"value": 0.25} 42c42 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 61c61 < "reaction": "reaction" --- > "reaction": {"key": "reaction"} 69c69 < "reaction": "reaction" --- > "reaction": {"key": "reaction"} behaviors\npc\runaway.behavior 6d5 < "/scripts/actions/query.lua", 8c7 < "/scripts/actions/movement.lua", --- > "/scripts/actions/movement.lua", 23,24c22,23 < "success": 3, < "fail": 1 --- > "fail": {"value": 1}, > "success": {"value": 3} 38c37 < "entity": "fleeTarget" --- > "entity": {"key": "fleeTarget"} 46,48c45,47 < "entity": "fleeTarget", < "range": 20, < "position": "self" --- > "entity": {"key": "fleeTarget"}, > "position": {"key": "self"}, > "range": {"value": 20} 56c55 < "entity": "fleeTarget" --- > "entity": {"key": "fleeTarget"} 64c63 < "target": "fleeTarget" --- > "target": {"key": "fleeTarget"} 75c74 < "direction": "moveDirection" --- > "direction": {"key": "moveDirection"} 88,89c87,88 < "direction": "moveDirection", < "run": true --- > "direction": {"key": "moveDirection"}, > "run": {"value": true} 97c96 < "direction": "moveDirection" --- > "direction": {"key": "moveDirection"} 107c106 < "time": 5 --- > "time": {"value": 5} behaviors\npc\simple.behavior 2a3 > "description": "", 11a13 > "title": null, behaviors\npc\sit.behavior 24,28c24,28 < "position": "spawn", < "range": 80, < "orderBy": "nearest", < "orientation": "sit", < "unoccupied": true --- > "orderBy": {"value": "nearest"}, > "orientation": {"value": "sit"}, > "position": {"key": "spawn"}, > "range": {"value": 80}, > "unoccupied": {"value": true} 39,40c39,40 < "list": "loungables", < "type": "entity" --- > "list": {"key": "loungables"}, > "type": {"value": "entity"} 52,53c52,53 < "objectEntity": "filterItem", < "tag": "captainschair" --- > "objectEntity": {"key": "filterItem"}, > "tag": {"value": "captainschair"} 63c63 < "list": "loungables" --- > "list": {"key": "loungables"} 65a66 > "list" : "loungables", 69a71 > "title": null, 73c75 < "entity": "chair" --- > "entity": {"key": "chair"} 84,85c86,87 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 93c95 < "entity": "chair" --- > "entity": {"key": "chair"} 101,102c103,104 < "position": "chair", < "groundPosition": true --- > "groundPosition": {"value": true}, > "position": {"key": "chair"} 104,114c106 < "output": { < "direction": "direction" < } < }, < { < "title": "faceDirection", < "type": "action", < "name": "faceDirection", < "parameters": { < "direction": "direction" < } --- > "output": {} 116a109 > "title": null, 120a114 > "title": null, 124c118 < "entity": "chair" --- > "entity": {"key": "chair"} 135,136c129,130 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 144c138 < "entity": "chair" --- > "entity": {"key": "chair"} 152,155c146 < "time": [ < 20, < 120 < ] --- > "time": {"value": [20, 120]} 162c153 < } \ No newline at end of file --- > } behaviors\npc\sleep.behavior 15,18c15 < "sleepUntil": [ < 0, < 0.7 < ] --- > "sleepUntil": [0, 0.7] 26a24 > "title": null, 30,32c28,30 < "position": "spawn", < "range": 50, < "orientation": "lay" --- > "orientation": {"value": "lay"}, > "position": {"key": "spawn"}, > "range": {"value": 50} 43,44c41,42 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 52c50,53 < "name": "nochat" --- > "bool": {"value": true} > }, > "output" : { > "bool" : "nochat" 61a63 > "title": null, 65c67 < "entity": "bed" --- > "entity": {"key": "bed"} 71a74 > "title": null, 75c78 < "position": "bed" --- > "position": {"key": "bed"} 86,87c89,90 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 90a94 > "title": null, 94c98 < "position": "bed" --- > "position": {"key": "bed"} 96,106c100 < "output": { < "direction": "direction" < } < }, < { < "title": "faceDirection", < "type": "action", < "name": "faceDirection", < "parameters": { < "direction": "direction" < } --- > "output": {} 113c107 < "entity": "bed" --- > "entity": {"key": "bed"} 116a111 > "title": null, 120a116 > "title": null, 124c120 < "entity": "bed" --- > "entity": {"key": "bed"} 135,136c131,132 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 144c140 < "entity": "bed" --- > "entity": {"key": "bed"} 152c148 < "entity": "bed" --- > "entity": {"key": "bed"} 166c162 < "range": "" --- > "range": {"key": ""} 179,181c175,177 < "cooldown": 30, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 30}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 187,192c183 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 199c190 < "influence": "sleep" --- > "influence": {"key": "sleep"} 210c201 < "influence": "sleep" --- > "influence": {"key": "sleep"} 221c212 < "reaction": "sleepReaction" --- > "reaction": {"key": "sleepReaction"} 244c235 < } \ No newline at end of file --- > } behaviors\npc\speaker.behavior 5d4 < "/scripts/actions/world.lua", 7,8c6 < "/scripts/actions/entity.lua", < "/scripts/actions/movement.lua", --- > "/scripts/actions/movement.lua", 24c22 < "cooldown": 300 --- > "cooldown": {"value": 300} 37,38c35,36 < "cooldown": 1, < "onFail": true --- > "cooldown": {"value": 1}, > "onFail": {"value": true} 45,48c43,44 < "range": 10, < "entityTypes": [ < "player" < ] --- > "entityTypes": {"value": ["player"]}, > "range": {"value": 10} 71c67 < "entity": "player" --- > "entity": {"key": "player"} 79,81c75,76 < "dialogType": "dialog.speak", < "entity": "player", < "static": false --- > "dialogType": {"value": "dialog.speak"}, > "entity": {"key": "player"} 89c84 < "time": 0.75 --- > "time": {"value": 0.75} 98a94 > "title": null, behaviors\npc\tenant.behavior 12c12 < "/scripts/tenant.lua", --- > "/scripts/actions/tenant.lua", 34c34 < "key": "homePosition" --- > "key": {"value": "homePosition"} 53c53 < "type": "friendly" --- > "type": {"value": "friendly"} 67c67 < "type": "assistant" --- > "type": {"value": "assistant"} 110c110 < "type": "tenant.evicted" --- > "type": {"value": "tenant.evicted"} 138c138 < "type": "tenant.returnHome.rent" --- > "type": {"value": "tenant.returnHome.rent"} 152,153c152,153 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 175,181c175,179 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 20, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 20}, > "withoutEntity": {"key": "self"} 192c190 < "entity": "nearestPlayer" --- > "entity": {"key": "nearestPlayer"} 200,201c198,199 < "dialogType": "dialog.tenant.arrivedHome.rent", < "entity": "nearestPlayer" --- > "dialogType": {"value": "dialog.tenant.arrivedHome.rent"}, > "entity": {"key": "nearestPlayer"} 209c207 < "position": "self" --- > "position": {"key": "self"} 217,218c215,216 < "fail": 1, < "success": 2 --- > "fail": {"value": 1}, > "success": {"value": 2} 238,241c236 < "time": [ < 5, < 10 < ] --- > "time": {"value": [5, 10]} 261c256 < "type": "tenant.returnHome.beacon" --- > "type": {"value": "tenant.returnHome.beacon"} 275,281c270,274 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 20, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 20}, > "withoutEntity": {"key": "self"} 292c285 < "entity": "nearestPlayer" --- > "entity": {"key": "nearestPlayer"} 300,301c293,294 < "dialogType": "dialog.tenant.arrivedHome.beacon", < "entity": "nearestPlayer" --- > "dialogType": {"value": "dialog.tenant.arrivedHome.beacon"}, > "entity": {"key": "nearestPlayer"} 309,310c302,303 < "fail": 1, < "success": 2 --- > "fail": {"value": 1}, > "success": {"value": 2} 330,333c323 < "time": [ < 5, < 10 < ] --- > "time": {"value": [5, 10]} 351c341 < "type": "tenant.returnHome.grumble" --- > "type": {"value": "tenant.returnHome.grumble"} 379c369 < "type": "tenant.grumble" --- > "type": {"value": "tenant.grumble"} 401c391 < "type": "tenant.setHome" --- > "type": {"value": "tenant.setHome"} 409c399 < "name": "beamin" --- > "name": {"value": "beamin"} 417,418c407,408 < "fail": 1, < "success": 2 --- > "fail": {"value": 1}, > "success": {"value": 2} 438,441c428 < "time": [ < 2, < 2 < ] --- > "time": {"value": [2, 2]} behaviors\npc\tutorial.behavior 20a21 > "title": null, 36c37 < "play": "" --- > "play": {"value": ""} behaviors\npc\villageguard.behavior 43,44c43,44 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 52,60c52,57 < "broadcastInterval": 2, < "hostileDamageTeam": { < "type": "enemy", < "team": 1 < }, < "losTime": 8, < "queryRange": 50, < "trackingRange": 100, < "attackOnSight": "attackOnSight" --- > "attackOnSight": {"key": "attackOnSight"}, > "broadcastInterval": {"value": 2}, > "hostileDamageTeam": {"value": {"type": "enemy", "team": 1}}, > "losTime": {"value": 8}, > "queryRange": {"value": 50}, > "trackingRange": {"value": 100} 63c60,61 < "target": "target" --- > "target": "target", > "attackOnSight": "attackOnSight" 70,75c68 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 82c75 < "name": "inCombat" --- > "name": {"value": "inCombat"} 101c94 < "chance": 0.75 --- > "chance": {"value": 0.75} 108,113c101 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 120,123c108,109 < "entity": "target", < "types": [ < "player" < ] --- > "entity": {"key": "target"}, > "types": {"value": ["player"]} 137,138c123,124 < "list": "seenplayers", < "entity": "target" --- > "entity": {"key": "target"}, > "list": {"key": "seenplayers"} 151,152c137,141 < "list": "seenplayers", < "entity": "target" --- > "entity": {"key": "target"}, > "list": {"key": "seenplayers"} > }, > "output": { > "list": "seenplayers" 163,165c152,154 < "dialogType": "dialog.reattack", < "entity": "target", < "tags": {} --- > "dialogType": {"value": "dialog.reattack"}, > "entity": {"key": "target"}, > "tags": {"value": {}} 175,177c164,166 < "dialogType": "dialog.attack", < "entity": "target", < "tags": {} --- > "dialogType": {"value": "dialog.attack"}, > "entity": {"key": "target"}, > "tags": {"value": {}} 214c203 < "name": "inCombat" --- > "name": {"key": "inCombat"} 222,227c211 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 234c218 < "name": "inCombat" --- > "name": {"value": "inCombat"} 248c232 < "chance": 0.75 --- > "chance": {"value": 0.75} 255,260c239 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 267c246 < "entity": "target" --- > "entity": {"key": "target"} 275,277c254,256 < "dialogType": "dialog.lostTarget", < "entity": "target", < "tags": {} --- > "dialogType": {"value": "dialog.lostTarget"}, > "entity": {"key": "target"}, > "tags": {"value": {}} 287,289c266,268 < "dialogType": "dialog.killedTarget", < "entity": "target", < "tags": {} --- > "dialogType": {"value": "dialog.killedTarget"}, > "entity": {"key": "target"}, > "tags": {"value": {}} 307a287 > "title": null, 317c297 < "play": "" --- > "play": {"value": ""} behaviors\npc\villager.behavior 20a21 > "title": null, 31a33 > "title": null, 41c43 < "play": "" --- > "play": {"value": ""} behaviors\npc\wander.behavior 2a3 > "description": "", 6,8c7 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/position.lua", --- > "/scripts/actions/position.lua", 14,17c13 < "idleTime": [ < 2, < 10 < ], --- > "idleTime": [2, 10], 27,32c23 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 44,49c35 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 61,66c47 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 94c75 < "entity": "player" --- > "entity": {"key": "player"} 107,111c88,89 < "offset": [ < 0, < 0 < ], < "position": "spawn" --- > "offset": {"value": [0, 0]}, > "position": {"key": "spawn"} 129,131c107,109 < "position": "self", < "target": "home", < "range": "" --- > "position": {"key": "self"}, > "range": {"key": ""}, > "target": {"key": "home"} 140,141c118,119 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 155,159c133,135 < "pathOptions": { < "returnBest": true < }, < "position": "home", < "run": "" --- > "pathOptions": {"value": {"returnBest": true}}, > "position": {"key": "home"}, > "run": {"key": ""} 162d137 < "direction": "direction" 170,171c145,146 < "fail": 2, < "success": 2 --- > "fail": {"value": 2}, > "success": {"value": 2} 179,180c154,155 < "from": "self", < "to": "home" --- > "from": {"key": "self"}, > "to": {"key": "home"} 191,193c166,168 < "position": "self", < "target": "home", < "range": "" --- > "position": {"key": "self"}, > "range": {"key": ""}, > "target": {"key": "home"} 201,202c176,177 < "direction": "homeX", < "run": false --- > "direction": {"key": "homeX"}, > "run": {"value": false} 214,216c189,191 < "position": "self", < "target": "home", < "range": 5 --- > "position": {"key": "self"}, > "range": {"value": 5}, > "target": {"key": "home"} 229a205 > "title": null, 238c214 < "position": "self" --- > "position": {"key": "self"} 242a219 > "title": null, 246,249c223 < "range": [ < 0.5, < 0.2 < ] --- > "range": {"value": [0.5, 0.2]} 257,258c231,232 < "position": "self", < "range": 50 --- > "position": {"key": "self"}, > "range": {"value": 50} 269,270c243,244 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 278,279c252 < "direction": "facing", < "distance": 1.5 --- > "distance": {"value": 1.5} 287,288c260,261 < "position": "insideDoor", < "run": "" --- > "position": {"key": "insideDoor"}, > "run": {"key": ""} 290,300c263 < "output": { < "direction": "direction" < } < }, < { < "title": "faceDirection", < "type": "action", < "name": "faceDirection", < "parameters": { < "direction": "direction" < } --- > "output": {} 304a268 > "title": null, 313c277 < "distance": 3 --- > "distance": {"value": 3} 330c294 < "position": "self" --- > "position": {"key": "self"} 338,341c302 < "range": [ < 0.2, < 0.5 < ] --- > "range": {"value": [0.2, 0.5]} 349,350c310,311 < "position": "self", < "range": 50 --- > "position": {"key": "self"}, > "range": {"value": 50} 361,362c322,323 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 370,371c331 < "direction": "facing", < "distance": 1.5 --- > "distance": {"value": 1.5} 379,380c339,340 < "position": "outsideDoor", < "run": "" --- > "position": {"key": "outsideDoor"}, > "run": {"key": ""} 382,392c342 < "output": { < "direction": "direction" < } < }, < { < "title": "faceDirection", < "type": "action", < "name": "faceDirection", < "parameters": { < "direction": "direction" < } --- > "output": {} 396a347 > "title": null, 400a352 > "title": null, 404c356 < "distance": 3 --- > "distance": {"value": 3} 416a369 > "title": null, 425c378 < "title": "Set start", --- > "title": "", 428c381,384 < "parameters": {}, --- > "parameters": { > "offset": {"value": [0, 0]}, > "position": {"key": "self"} > }, 443,444c399,400 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 458,459c414,416 < "direction": "direction", < "multiplier": 2 --- > "direction": {"key": "direction"}, > "multiplier": {"value": 2}, > "position": {"key": "self"} 465a423 > "title": null, 476a435 > "title": null, 480c439 < "position": "start" --- > "position": {"key": "start"} 483a443 > "title": null, 487c447 < "position": "ahead" --- > "position": {"key": "ahead"} 498a459 > "title": null, 502a464 > "title": null, 506c468 < "position": "start" --- > "position": {"key": "start"} 510a473 > "title": null, 514a478 > "title": null, 518c482 < "position": "ahead" --- > "position": {"key": "ahead"} 532,537c496 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 544,556c503 < "direction": "facing", < "distance": 2 < } < }, < { < "title": "reverseDirection", < "type": "action", < "name": "reverseDirection", < "parameters": { < "direction": "direction" < }, < "output": { < "direction": "back" --- > "distance": {"value": 2} 569,570c516 < "distance": 2, < "direction": "back" --- > "distance": {"value": 2} 587,588c533,534 < "direction": "direction", < "run": "" --- > "direction": {"key": "direction"}, > "run": {"key": ""} 600,605c546 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 612,621c553,555 < "position": "self", < "offset": [ < "direction", < 0 < ], < "collisionType": [ < "Null", < "Block", < "Dynamic" < ] --- > "collisionType": {"value": ["Null", "Block", "Dynamic"]}, > "offset": {"value": ["direction", 0]}, > "position": {"key": "self"} 629c563 < "direction": "direction" --- > "direction": {"key": "direction"} 640c574 < "direction": "direction" --- > "direction": {"key": "direction"} 653c587 < "direction": "direction" --- > "direction": {"key": "direction"} 666c600 < "time": "" --- > "time": {"value": ""} 682c616 < "time": "" --- > "time": {"value": ""} 687c621 < } \ No newline at end of file --- > } behaviors\npc\wanderSimple.behavior 2a3 > "description": "", 9,17c10,11 < "wanderRange": 15, < "wanderTime": [ < 0.5, < 2 < ], < "wanderWaitTime": [ < 2, < 10 < ], --- > "wanderTime": [0.5, 2], > "wanderWaitTime": [2, 10], 30,35c24 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 47,49c36,38 < "position": "self", < "target": "spawn", < "range": 10 --- > "position": {"key": "self"}, > "range": {"value": 10}, > "target": {"key": "spawn"} 58,59c47,48 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 73,77c62,64 < "position": "spawn", < "run": "", < "pathOptions": { < "returnBest": true < } --- > "pathOptions": {"value": {"returnBest": true}}, > "position": {"key": "spawn"}, > "run": {"key": ""} 80d66 < "direction": "direction", 89,90c75,76 < "fail": 2, < "success": 2 --- > "fail": {"value": 2}, > "success": {"value": 2} 98,99c84,85 < "from": "self", < "to": "spawn" --- > "from": {"key": "self"}, > "to": {"key": "spawn"} 102d87 < "vector": "", 112,114c97,99 < "position": "self", < "target": "spawn", < "range": 10 --- > "position": {"key": "self"}, > "range": {"value": 10}, > "target": {"key": "spawn"} 122,123c107,108 < "direction": "spawnX", < "run": false --- > "direction": {"key": "spawnX"}, > "run": {"value": false} 135,137c120,122 < "position": "self", < "target": "spawn", < "range": 3 --- > "position": {"key": "self"}, > "range": {"value": 3}, > "target": {"key": "spawn"} 155c140 < "time": "" --- > "time": {"value": ""} 172,173c157,158 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 181c166 < "direction": "moveDirection" --- > "direction": {"key": "moveDirection"} 189c174 < "time": "" --- > "time": {"value": ""} 198c183 < } \ No newline at end of file --- > } behaviors\npc\combat\melee.behavior 14,15d13 < "liquidHesitationTime": 3, < "forceRunRange": 15, 23,28c21 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 35c28 < "name": "avoidLiquid" --- > "name": {"value": "avoidLiquid"} 43,44c36,37 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 53,54c46,47 < "windup": "meleeWindup", < "cooldown": "meleeCooldown" --- > "cooldown": "meleeCooldown", > "windup": "meleeWindup" 67,72c60 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 79,81c67,69 < "cooldown": "", < "onFail": false, < "onSuccess": true --- > "cooldown": {"key": ""}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 87,92c75 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 134,136c117,119 < "cooldown": "meleeCooldown", < "onFail": false, < "onSuccess": true --- > "cooldown": {"key": "meleeCooldown"}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 149,151c132,134 < "cooldown": "", < "onFail": false, < "onSuccess": true --- > "cooldown": {"key": ""}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 158,160c141,143 < "cooldown": 0.5, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 0.5}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 166,171c149 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 178c156 < "chance": "" --- > "chance": {"key": ""} 195,200c173 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 207,208c180,181 < "groupId": "combat", < "name": "maxRange" --- > "groupId": {"value": "combat"}, > "name": {"value": "maxRange"} 219,221c192,194 < "entity": "target", < "xRange": "maxRange", < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "xRange": {"key": "maxRange"} 229,231c202,204 < "entity": "target", < "yRange": 5, < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "yRange": {"value": 5} 244,245c217,218 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 259,261c232,234 < "entity": "target", < "xRange": "maxRange", < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "xRange": {"key": "maxRange"} 281c254 < "time": "meleeWindup" --- > "time": {"key": "meleeWindup"} 297c270 < "entity": "target" --- > "entity": {"key": "target"} 312c285 < } \ No newline at end of file --- > } behaviors\npc\combat\meleeaim.behavior 2a3 > "description": "", 5,12c6,7 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/position.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua" --- > "/scripts/actions/position.lua", > "/scripts/actions/npc.lua" 14,16c9 < "parameters": { < "updatePosition": "" < }, --- > "parameters": {}, 21,26c14 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 33c21 < "entity": "target" --- > "entity": {"key": "target"} 44,45c32,33 < "from": "self", < "to": "targetPosition" --- > "from": {"key": "self"}, > "to": {"key": "targetPosition"} 56,57c44,45 < "offset": "aimOffset", < "position": "self" --- > "offset": {"key": "aimOffset"}, > "position": {"key": "self"} behaviors\npc\combat\meleeapproach.behavior 2a3 > "description": "", 3a5 > "/scripts/behavior.lua", 7,9d8 < "/scripts/behavior.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", 11c10,11 < "/scripts/actions/dialog.lua" --- > "/scripts/actions/dialog.lua", > "/scripts/actions/world.lua" 14d13 < "switchToRangedCooldown": 8, 24,25c23,24 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 33,34c32,33 < "groupId": "combat", < "name": "meleePosition" --- > "groupId": {"value": "combat"}, > "name": {"value": "meleePosition"} 51,53c50,52 < "cooldown": 1, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 1}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 59,64c58 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 77c71 < "chance": 0.15 --- > "chance": {"value": 0.15} 85c79 < "time": 0.5 --- > "time": {"value": 0.5} 96,100c90,93 < "avoidLiquid": "avoidLiquid", < "failFast": false, < "groundPosition": false, < "position": "meleePosition", < "run": "run" --- > "avoidLiquid": {"key": "avoidLiquid"}, > "groundPosition": {"value": false}, > "position": {"key": "meleePosition"}, > "run": {"key": "run"} 103d95 < "direction": "direction", 111,116c103 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 123c110 < "name": "avoidLiquid" --- > "name": {"value": "avoidLiquid"} 131c118 < "time": "" --- > "time": {"value": ""} 139c126 < "name": "avoidLiquid" --- > "name": {"value": "avoidLiquid"} 151,152c138,139 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 160c147 < "name": "meleePathing" --- > "name": {"key": "meleePathing"} 168c155 < "entity": "target" --- > "entity": {"key": "target"} 181c168 < "shouldRun": "" --- > "shouldRun": {"key": ""} 188,189c175,176 < "cooldown": 10, < "onFail": false --- > "cooldown": {"value": 10}, > "onFail": {"value": false} 195,200c182 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 207c189 < "time": 2 --- > "time": {"value": 2} 221c203 < "chance": 0.75 --- > "chance": {"value": 0.75} 229,231c211,213 < "dialogType": "dialog.cantReach", < "entity": "target", < "tags": {} --- > "dialogType": {"value": "dialog.cantReach"}, > "entity": {"key": "target"}, > "tags": {"value": {}} 247,252c229 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 259,262c236 < "time": 1 < }, < "output": { < "ratio": "" --- > "time": {"value": 1} 275,280c249 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 293,295c262,264 < "entity": "target", < "xRange": "", < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "xRange": {"key": ""} 303c272 < "chance": 0.4 --- > "chance": {"value": 0.4} 313c282 < "name": "run" --- > "name": {"value": "run"} 323c292 < "name": "run" --- > "name": {"value": "run"} 332c301 < } \ No newline at end of file --- > } behaviors\npc\combat\meleeleap.behavior 21,26c21 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 38,40c33,35 < "entity": "target", < "xRange": 7, < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "xRange": {"value": 7} 55c50 < "entity": "target" --- > "entity": {"key": "target"} 65,70c60 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 77c67 < "statName": "jumpModifier" --- > "statName": {"value": "jumpModifier"} 88,89c78,79 < "number": 45, < "factor": "jumpModifier" --- > "factor": {"key": "jumpModifier"}, > "number": {"value": 45} 100,101c90,91 < "addend": 45, < "number": "speedModifier" --- > "addend": {"value": 45}, > "number": {"key": "speedModifier"} 120,125c110,115 < "collisionCheck": false, < "fromPosition": "self", < "gravityMultiplier": 1.5, < "speed": "leapSpeed", < "toPosition": "targetPosition", < "useHighArc": false --- > "collisionCheck": {"value": false}, > "fromPosition": {"key": "self"}, > "gravityMultiplier": {"value": 1.5}, > "speed": {"key": "leapSpeed"}, > "toPosition": {"key": "targetPosition"}, > "useHighArc": {"value": false} 136,141c126,131 < "collisionCheck": false, < "fromPosition": "self", < "gravityMultiplier": 1.5, < "speed": "leapSpeed", < "toPosition": "targetPosition", < "useHighArc": true --- > "collisionCheck": {"value": false}, > "fromPosition": {"key": "self"}, > "gravityMultiplier": {"value": 1.5}, > "speed": {"key": "leapSpeed"}, > "toPosition": {"key": "targetPosition"}, > "useHighArc": {"value": true} 165,166c155,156 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 174,175c164,165 < "offset": "aimOffset", < "position": "self" --- > "offset": {"key": "aimOffset"}, > "position": {"key": "self"} 188,193c178 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 200c185 < "name": "run" --- > "name": {"value": "run"} 214,219c199,204 < "collisionCheck": false, < "fromPosition": "self", < "gravityMultiplier": 1.5, < "speed": "leapSpeed", < "toPosition": "targetPosition", < "useHighArc": false --- > "collisionCheck": {"value": false}, > "fromPosition": {"key": "self"}, > "gravityMultiplier": {"value": 1.5}, > "speed": {"key": "leapSpeed"}, > "toPosition": {"key": "targetPosition"}, > "useHighArc": {"value": false} 230,235c215,220 < "collisionCheck": false, < "fromPosition": "self", < "gravityMultiplier": 1.5, < "speed": "leapSpeed", < "toPosition": "targetPosition", < "useHighArc": true --- > "collisionCheck": {"value": false}, > "fromPosition": {"key": "self"}, > "gravityMultiplier": {"value": 1.5}, > "speed": {"key": "leapSpeed"}, > "toPosition": {"key": "targetPosition"}, > "useHighArc": {"value": true} 248,249c233,234 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 262,267c247,252 < "collisionCheck": true, < "fromPosition": "self", < "gravityMultiplier": 1.5, < "speed": "leapSpeed", < "toPosition": "meleePosition", < "useHighArc": false --- > "collisionCheck": {"value": true}, > "fromPosition": {"key": "self"}, > "gravityMultiplier": {"value": 1.5}, > "speed": {"key": "leapSpeed"}, > "toPosition": {"key": "meleePosition"}, > "useHighArc": {"value": false} 279c264 < "time": "" --- > "time": {"value": ""} 295,296c280,281 < "first": "jumpVector", < "second": "leapSpeed" --- > "first": {"key": "jumpVector"}, > "number": {"key": "leapSpeed"} 307c292 < "velocity": "jumpVelocity" --- > "velocity": {"key": "jumpVelocity"} 315c300 < "time": 0.1 --- > "time": {"value": 0.1} 351c336 < } \ No newline at end of file --- > } behaviors\npc\combat\meleestandby.behavior 6c6 < "/scripts/actions/query.lua", --- > "/scripts/actions/movement.lua", 8d7 < "/scripts/actions/movement.lua", 10,14c9 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua" --- > "/scripts/actions/dialog.lua" 22,23c17,18 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 31c26 < "entity": "target" --- > "entity": {"key": "target"} 47,52c42 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 59,61c49,51 < "entity": "target", < "range": 5, < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "range": {"value": 5} 69,70c59,60 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 78,80c68,70 < "entity": "target", < "range": 8, < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "range": {"value": 8} 88,89c78,79 < "entity": "self", < "target": "target" --- > "entity": {"key": "self"}, > "target": {"key": "target"} 100c90 < "direction": "targetDirection" --- > "direction": {"key": "targetDirection"} 116,117c106,107 < "direction": "targetDirection", < "run": true --- > "direction": {"key": "targetDirection"}, > "run": {"value": true} 135,140c125 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 147,149c132,134 < "entity": "target", < "range": 15, < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "range": {"value": 15} 157c142 < "entity": "target" --- > "entity": {"key": "target"} 165c150 < "entity": "target" --- > "entity": {"key": "target"} 175,176c160,161 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 189,191c174,176 < "entity": "target", < "range": 10, < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "range": {"value": 10} 200,206c185,190 < "avoidLiquid": true, < "groundPosition": false, < "maxGround": 5, < "minGround": -10, < "position": "targetPosition", < "run": true, < "failFast": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": false}, > "maxGround": {"value": 5}, > "minGround": {"value": -10}, > "position": {"key": "targetPosition"}, > "run": {"value": true} 208,218c192 < "output": { < "direction": "direction" < } < }, < { < "title": "faceDirection", < "type": "action", < "name": "faceDirection", < "parameters": { < "direction": "direction" < } --- > "output": {} 231,233c205,207 < "cooldown": 5, < "onFail": false, < "onSuccess": true --- > "cooldown": {"value": 5}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 246c220 < "chance": 0.3 --- > "chance": {"value": 0.3} 254,256c228,230 < "dialogType": "dialog.cheerOn", < "entity": "target", < "tags": {} --- > "dialogType": {"value": "dialog.cheerOn"}, > "entity": {"key": "target"}, > "tags": {"value": {}} 270c244 < } \ No newline at end of file --- > } behaviors\npc\combat\ranged.behavior 4a5 > "/scripts/behavior.lua", 20d20 < "bowDrawTime": 1, 28,29c28,29 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 43,44c43,44 < "groupId": "combat", < "name": "movePosition" --- > "groupId": {"value": "combat"}, > "name": {"value": "movePosition"} 55c55 < "entity": "target" --- > "entity": {"key": "target"} 78,83c78 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 89,94c84 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 101,102c91,92 < "groupId": "combat", < "name": "minRange" --- > "groupId": {"value": "combat"}, > "name": {"value": "minRange"} 118,120c108,110 < "entity": "target", < "range": 3, < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "range": {"value": 3} 130,135c120 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 142,143c127,128 < "groupId": "combat", < "name": "maxRange" --- > "groupId": {"value": "combat"}, > "name": {"value": "maxRange"} 154,156c139,141 < "entity": "target", < "range": "maxRange", < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "range": {"key": "maxRange"} 177,182c162 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 189c169 < "tag": "bow" --- > "tag": {"value": "bow"} 197,198c177,178 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 211,216c191 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 223c198 < "projectileName": "woodenarrow" --- > "projectileName": {"value": "woodenarrow"} 234,237c209 < "vector": [ < "facingDirection", < 0 < ] --- > "vector": {"value": ["facingDirection", 0]} 248,249c220,221 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 257c229 < "entity": "target" --- > "entity": {"key": "target"} 265c237 < "entity": "target" --- > "entity": {"key": "target"} 280,285c252 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 292,297c259,264 < "collisionCheck": false, < "fromPosition": "self", < "gravityMultiplier": "arrowGravity", < "speed": "", < "toPosition": "targetPosition", < "useHighArc": false --- > "collisionCheck": {"value": false}, > "fromPosition": {"key": "self"}, > "gravityMultiplier": {"key": "arrowGravity"}, > "speed": {"key": ""}, > "toPosition": {"key": "targetPosition"}, > "useHighArc": {"value": false} 308,312c275,276 < "first": "aimVector", < "second": [ < 10, < 10 < ] --- > "first": {"key": "aimVector"}, > "second": {"value": [10, 10]} 326,327c290,291 < "offset": "aimOffset", < "position": "self" --- > "offset": {"key": "aimOffset"}, > "position": {"key": "self"} 335c299 < "time": 1 --- > "time": {"value": 1} 349c313 < "time": 0.2 --- > "time": {"value": 0.2} 359,360c323,324 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 367,372c331 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 379,380c338,339 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 388c347 < "entity": "target" --- > "entity": {"key": "target"} 396c355 < "entity": "target" --- > "entity": {"key": "target"} 404c363 < "entity": "target" --- > "entity": {"key": "target"} 415,419c374,375 < "offset": [ < 0, < 0 < ], < "position": "targetPosition" --- > "offset": {"value": [0, 0]}, > "position": {"key": "targetPosition"} 430c386 < "position": "aimPosition" --- > "position": {"key": "aimPosition"} 438c394 < "time": "" --- > "time": {"value": ""} 448c404 < "time": "" --- > "time": {"value": ""} 456,457c412,413 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 470,475c426 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 482c433 < "time": "" --- > "time": {"value": ""} 507c458 < "entity": "target" --- > "entity": {"key": "target"} 528c479 < "time": "" --- > "time": {"value": ""} 552c503 < "position": "aimPosition" --- > "position": {"key": "aimPosition"} 572,577c523 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 602c548 < "entity": "target" --- > "entity": {"key": "target"} 624,625c570,571 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 633,639c579,584 < "avoidLiquid": true, < "failFast": false, < "groundPosition": false, < "maxGround": 5, < "minGround": -10, < "position": "rangedPosition", < "run": true --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": false}, > "maxGround": {"value": 5}, > "minGround": {"value": -10}, > "position": {"key": "rangedPosition"}, > "run": {"value": true} 642d586 < "direction": "direction", 655,660c599 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 667,668c606,607 < "groupId": "combat", < "name": "minRange" --- > "groupId": {"value": "combat"}, > "name": {"value": "minRange"} 684,686c623,625 < "entity": "target", < "range": "minRange", < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "range": {"key": "minRange"} 695c634 < "entity": "target" --- > "entity": {"key": "target"} 721c660 < } \ No newline at end of file --- > } behaviors\npc\crew\catchup.behavior 2a3 > "description": "", 5,7c6 < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua" --- > "/scripts/actions/world.lua" 10c9 < "teleportRange" : 50 --- > "teleportRange": 50 16,21c15 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 48,50c42,44 < "entity": "player", < "range": "", < "position": "self" --- > "entity": {"key": "player"}, > "position": {"key": "self"}, > "range": {"key": ""} behaviors\npc\crew\combat.behavior 5,7d4 < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", 8a6 > "/scripts/actions/world.lua", 28,29c26,27 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 37,45c35,40 < "broadcastInterval": 2, < "hostileDamageTeam": { < "type": "friendly", < "team": 1 < }, < "losTime": 8, < "queryRange": 50, < "trackingRange": 100, < "attackOnSight": "attackOnSight" --- > "attackOnSight": {"key": "attackOnSight"}, > "broadcastInterval": {"value": 2}, > "hostileDamageTeam": {"value": {"type": "friendly", "team": 1}}, > "losTime": {"value": 8}, > "queryRange": {"value": 50}, > "trackingRange": {"value": 100} 56,58c51,53 < "entity": "target", < "range": "", < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "range": {"key": ""} 82,83c77,78 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 91,92c86,87 < "percentage": 0.1, < "resource": "health" --- > "percentage": {"value": 0.1}, > "resource": {"value": "health"} 100,102c95,97 < "cooldown": "", < "onFail": false, < "onSuccess": true --- > "cooldown": {"key": ""}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 108,113c103 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 135c125 < "entity": "target" --- > "entity": {"key": "target"} 146,148c136,138 < "entity": "player", < "range": "", < "position": "targetPosition" --- > "entity": {"key": "player"}, > "position": {"key": "targetPosition"}, > "range": {"key": ""} 156,157c146,147 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 165,170c155,160 < "goal": "player", < "goalType": "entity", < "groupId": "combatBenefits", < "maxMembers": 5, < "minMembers": 1, < "position": "self" --- > "goal": {"value": "player"}, > "goalType": {"value": "entity"}, > "groupId": {"value": "combatBenefits"}, > "maxMembers": {"value": 5}, > "minMembers": {"value": 1}, > "position": {"key": "self"} 178,181c168,171 < "groupId": "combatBenefits", < "taskId": "benefitGiver", < "minMembers": 1, < "maxMembers": 1 --- > "groupId": {"value": "combatBenefits"}, > "maxMembers": {"value": 1}, > "minMembers": {"value": 1}, > "taskId": {"value": "benefitGiver"} 188,193c178 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 204,209c189 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 216c196 < "entity": "self" --- > "entity": {"key": "self"} 233,234c213,214 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 242c222 < "entity": "player" --- > "entity": {"key": "player"} 259,261c239,241 < "entity": "player", < "range": "", < "position": "self" --- > "entity": {"key": "player"}, > "position": {"key": "self"}, > "range": {"key": ""} 269,270c249,250 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 278,285c258,264 < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "pathOptions": {}, < "position": "playerPosition", < "run": true --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "pathOptions": {"value": {}}, > "position": {"key": "playerPosition"}, > "run": {"value": true} 288d266 < "direction": "direction", 308c286 < "name": "isPathfinding" --- > "name": {"key": "isPathfinding"} 322,325c300 < "time": 1 < }, < "output": { < "ratio": "" --- > "time": {"value": 1} 342,345c317,319 < "dialogType": "dialog.crewmember.combatBenefit", < "entity": "player", < "tags": {}, < "static": false --- > "dialogType": {"value": "dialog.crewmember.combatBenefit"}, > "entity": {"key": "player"}, > "tags": {"value": {}} 359c333 < "time": 2 --- > "time": {"value": 2} 383c357 < } \ No newline at end of file --- > } behaviors\npc\crew\crewmember.behavior 2a3 > "description": "", 6,8c7 < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua" --- > "/scripts/actions/world.lua" 11,19c10 < "innerFollowRange": 5, < "outerFollowRange": 15, < "pathingTimeLimit": 5, < "cantreachCooldown": 40, < "teleportRange": 50, < "inspectCooldown": [ < 60, < 180 < ], --- > "inspectCooldown": [60, 180], 27,28c18,19 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 35,40c26 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 47c33 < "name": "playerMoved" --- > "name": {"value": "playerMoved"} 76,78c62,64 < "entity": "player", < "range": 0.5, < "position": "playerPosition" --- > "entity": {"key": "player"}, > "position": {"key": "playerPosition"}, > "range": {"value": 0.5} 86c72 < "name": "playerMoved" --- > "name": {"value": "playerMoved"} 96c82 < "entity": "player" --- > "entity": {"key": "player"} 126,131c112 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 138c119 < "name": "playerMoved" --- > "name": {"key": "playerMoved"} 160,162c141,143 < "cooldown": "", < "onFail": false, < "onSuccess": true --- > "cooldown": {"key": ""}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 169c150 < "shouldRun": "" --- > "shouldRun": {"key": ""} 195,200c176 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 207c183 < "name": "playerMoved" --- > "name": {"key": "playerMoved"} 235c211 < "play": true --- > "play": {"value": true} behaviors\npc\crew\emptyhands.behavior 2a3 > "description": "", 14c15 < "shouldRun": "" --- > "shouldRun": {"key": ""} 31,36c32 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 61c57 < "entity": "self" --- > "entity": {"key": "self"} 84,89c80 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 100,105c91 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 126,131c112 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 138c119 < "entity": "self" --- > "entity": {"key": "self"} behaviors\npc\crew\fieldbenefits.behavior 7,9c7 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/math.lua", --- > "/scripts/actions/math.lua", 25,27c23,25 < "cooldown": "", < "onFail": false, < "onSuccess": true --- > "cooldown": {"key": ""}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 33,38c31 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 60c53 < "entity": "player" --- > "entity": {"key": "player"} 71,72c64,65 < "first": 0.2, < "second": "playerHealth" --- > "first": {"value": 0.2}, > "second": {"key": "playerHealth"} 80,81c73,74 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 89,94c82,87 < "goal": "player", < "goalType": "entity", < "groupId": "fieldBenefits", < "maxMembers": 5, < "minMembers": 1, < "position": "self" --- > "goal": {"value": "player"}, > "goalType": {"value": "entity"}, > "groupId": {"value": "fieldBenefits"}, > "maxMembers": {"value": 5}, > "minMembers": {"value": 1}, > "position": {"key": "self"} 102,105c95,98 < "groupId": "fieldBenefits", < "taskId": "benefitGiver", < "minMembers": 1, < "maxMembers": 1 --- > "groupId": {"value": "fieldBenefits"}, > "maxMembers": {"value": 1}, > "minMembers": {"value": 1}, > "taskId": {"value": "benefitGiver"} 112,117c105 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 128,133c116 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 140c123 < "entity": "self" --- > "entity": {"key": "self"} 157,158c140,141 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 166c149 < "entity": "player" --- > "entity": {"key": "player"} 183,185c166,168 < "entity": "player", < "range": "", < "position": "self" --- > "entity": {"key": "player"}, > "position": {"key": "self"}, > "range": {"key": ""} 193,194c176,177 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 202,209c185,191 < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "pathOptions": {}, < "position": "playerPosition", < "run": true --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "pathOptions": {"value": {}}, > "position": {"key": "playerPosition"}, > "run": {"value": true} 212d193 < "direction": "direction", 232c213 < "name": "isPathfinding" --- > "name": {"key": "isPathfinding"} 246,249c227 < "time": 1 < }, < "output": { < "ratio": "" --- > "time": {"value": 1} 266,269c244,246 < "dialogType": "dialog.crewmember.fieldBenefit", < "entity": "player", < "tags": {}, < "static": false --- > "dialogType": {"value": "dialog.crewmember.fieldBenefit"}, > "entity": {"key": "player"}, > "tags": {"value": {}} 283c260 < "time": 2 --- > "time": {"value": 2} 293c270 < } \ No newline at end of file --- > } behaviors\npc\crew\follow.behavior 2a3 > "description": "", 7,9c8 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/movement.lua", --- > "/scripts/actions/movement.lua", 15,16c14,15 < "innerFollowRange" : 5, < "outerFollowRange" : 15, --- > "innerFollowRange": 5, > "outerFollowRange": 15, 31,32c30,31 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 60,65c59 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 72c66 < "name": "catchingUp" --- > "name": {"key": "catchingUp"} 85,87c79,81 < "entity": "player", < "range": "", < "position": "self" --- > "entity": {"key": "player"}, > "position": {"key": "self"}, > "range": {"key": ""} 97,102c91 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 114c103 < "name": "catchingUp" --- > "name": {"key": "catchingUp"} 128,130c117,119 < "entity": "player", < "range": "", < "position": "self" --- > "entity": {"key": "player"}, > "position": {"key": "self"}, > "range": {"key": ""} 143c132 < "entity": "player" --- > "entity": {"key": "player"} 154c143 < "name": "catchingUp" --- > "name": {"value": "catchingUp"} 173,174c162,163 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 182,189c171,177 < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -20, < "pathOptions": {}, < "position": "playerPosition", < "run": true --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -20}, > "pathOptions": {"value": {}}, > "position": {"key": "playerPosition"}, > "run": {"value": true} 192d179 < "direction": "direction", 212,213c199,200 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 221c208 < "name": "isPathfinding" --- > "name": {"key": "isPathfinding"} 229c216 < "time": "" --- > "time": {"value": ""} 256,259c243,246 < "avoidLiquid": true, < "maxHeight": 5, < "minHeight": -5, < "position": "playerPosition" --- > "avoidLiquid": {"value": true}, > "maxHeight": {"value": 5}, > "minHeight": {"value": -5}, > "position": {"key": "playerPosition"} 270,272c257,259 < "cooldown": "", < "onFail": true, < "onSuccess": true --- > "cooldown": {"key": ""}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 285c272 < "entity": "player" --- > "entity": {"key": "player"} 293,295c280,282 < "dialogType": "dialog.crewmember.cantreach", < "entity": "player", < "tags": {} --- > "dialogType": {"value": "dialog.crewmember.cantreach"}, > "entity": {"key": "player"}, > "tags": {"value": {}} 306c293 < "time": 10 --- > "time": {"value": 10} 332c319 < "name": "catchingUp" --- > "name": {"value": "catchingUp"} 338c325 < } \ No newline at end of file --- > } behaviors\npc\crew\notifications.behavior 7,9c7 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/movement.lua", --- > "/scripts/actions/movement.lua", 26,31c24 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 38c31 < "type": "shipImprovementApplied" --- > "type": {"value": "shipImprovementApplied"} 53,58c46 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 65c53 < "entity": "player" --- > "entity": {"key": "player"} 76,83c64,70 < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -20, < "pathOptions": {}, < "position": "playerPosition", < "run": true --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -20}, > "pathOptions": {"value": {}}, > "position": {"key": "playerPosition"}, > "run": {"value": true} 86d72 < "direction": "direction", 98c84 < "entity": "player" --- > "entity": {"key": "player"} 106,108c92,94 < "dialogType": "dialog.crewmember.shipImprovementApplied", < "entity": "player", < "tags": {} --- > "dialogType": {"value": "dialog.crewmember.shipImprovementApplied"}, > "entity": {"key": "player"}, > "tags": {"value": {}} 117,122c103 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 129c110 < "type": "firstTimeOnShip" --- > "type": {"value": "firstTimeOnShip"} 146c127 < "number": 1 --- > "number": {"value": 1} 157c138 < "number": -1 --- > "number": {"value": -1} 175,176c156,157 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 195,196c176,177 < "direction": "direction", < "run": false --- > "direction": {"key": "direction"}, > "run": {"value": false} 204c185 < "direction": "direction" --- > "direction": {"key": "direction"} 223c204 < "time": 1 --- > "time": {"value": 1} 235c216 < "entity": "player" --- > "entity": {"key": "player"} 243,245c224,226 < "dialogType": "dialog.crewmember.roleDescription", < "entity": "player", < "tags": {} --- > "dialogType": {"value": "dialog.crewmember.roleDescription"}, > "entity": {"key": "player"}, > "tags": {"value": {}} 253c234 < "entity": "player" --- > "entity": {"key": "player"} 264c245 < "influence": "firsttimeonship" --- > "influence": {"value": "firsttimeonship"} 275,276c256,257 < "sendInfluence": false, < "faceReactTarget": true --- > "sendInfluence": {"value": false}, > "faceReactTarget": {"value": true} 291,296c272 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 303c279 < "type": "respawned" --- > "type": {"value": "respawned"} 314c290 < "entity": "player" --- > "entity": {"key": "player"} 322,324c298,300 < "dialogType": "dialog.crewmember.respawned", < "entity": "player", < "tags": {} --- > "dialogType": {"value": "dialog.crewmember.respawned"}, > "entity": {"key": "player"}, > "tags": {"value": {}} 333,338c309 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 345c316 < "type": "unfollow" --- > "type": {"value": "unfollow"} 356c327 < "entity": "player" --- > "entity": {"key": "player"} 364,366c335,337 < "dialogType": "dialog.crewmember.unfollow", < "entity": "player", < "tags": {} --- > "dialogType": {"value": "dialog.crewmember.unfollow"}, > "entity": {"key": "player"}, > "tags": {"value": {}} 375,380c346 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 387c353 < "type": "follow" --- > "type": {"value": "follow"} 398c364 < "entity": "player" --- > "entity": {"key": "player"} 406,408c372,374 < "dialogType": "dialog.crewmember.follow", < "entity": "player", < "tags": {} --- > "dialogType": {"value": "dialog.crewmember.follow"}, > "entity": {"key": "player"}, > "tags": {"value": {}} 417,422c383 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 429c390 < "type": "recruited" --- > "type": {"value": "recruited"} 440c401 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 448c409 < "influence": "recruited" --- > "influence": {"key": "recruited"} 459,460c420,421 < "sendInfluence": false, < "faceReactTarget": true --- > "sendInfluence": {"value": false}, > "faceReactTarget": {"value": true} 475,480c436 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 487c443 < "type": "recruitDeclined" --- > "type": {"value": "recruitDeclined"} 498c454 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 506c462 < "influence": "recruitdeclined" --- > "influence": {"value": "recruitdeclined"} 517,518c473,474 < "sendInfluence": false, < "faceReactTarget": true --- > "sendInfluence": {"value": false}, > "faceReactTarget": {"value": true} 531c487 < } \ No newline at end of file --- > } behaviors\npc\crew\teleport.behavior 6,8c6 < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua" --- > "/scripts/actions/world.lua" 15,20c13 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 36c29 < "entity": "player" --- > "entity": {"key": "player"} behaviors\npc\crew\tout.behavior 2a3 > "description": "", 5d5 < "/scripts/actions/world.lua", 8c8 < "/scripts/behavior.lua", --- > "/scripts/behavior.lua", 17,22c17 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 41,43c36,38 < "cooldown": 2, < "onFail": false, < "onSuccess": true --- > "cooldown": {"value": 2}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 50,56c45,49 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 20, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 20}, > "withoutEntity": {"key": "self"} 68c61 < "entity": "player" --- > "entity": {"key": "player"} 81,82c74,75 < "list": "seenPlayers", < "entity": "player" --- > "entity": {"key": "player"}, > "list": {"key": "seenPlayers"} 91,92c84,88 < "entity": "player", < "list": "seenPlayers" --- > "entity": {"key": "player"}, > "list": {"key": "seenPlayers"} > }, > "output" : { > "list" : "seenPlayers" 100c96 < "entity": "player" --- > "entity": {"key": "player"} 108,110c104,106 < "dialogType": "dialog.crewmember.offer", < "entity": "player", < "tags": {} --- > "dialogType": {"value": "dialog.crewmember.offer"}, > "entity": {"key": "player"}, > "tags": {"value": {}} 115c111 < } \ No newline at end of file --- > } behaviors\npc\overrides\override-flee.behavior 9d8 < "/scripts/actions/query.lua", 11c10 < "/scripts/actions/position.lua", --- > "/scripts/actions/position.lua", 20,21c19,20 < "fail": 1, < "success": 2 --- > "fail": {"value": 1}, > "success": {"value": 2} 35,36c34,35 < "type": "entity", < "key": "nearestTarget" --- > "key": {"value": "nearestTarget"}, > "type": {"value": "entity"} 44c43 < "number": 10000 --- > "number": {"value": 10000} 55,56c54,55 < "maxLoops": -1, < "untilSuccess": true --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": true} 74c73 < "list": "fleeOverrides" --- > "list": {"key": "fleeOverrides"} 76a76 > "list" : "fleeOverrides", 96,97c96,97 < "override": "fleeOverride", < "argumentName": "target" --- > "argumentName": {"value": "target"}, > "override": {"key": "fleeOverride"} 108,110c108,110 < "entity": "target", < "range": 20, < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "range": {"value": 20} 118c118 < "entity": "target" --- > "entity": {"key": "target"} 126c126 < "entity": "target" --- > "entity": {"key": "target"} 137,138c137,138 < "from": "self", < "to": "targetPos" --- > "from": {"key": "self"}, > "to": {"key": "targetPos"} 149,150c149,150 < "first": "bestDist", < "second": "targetDist" --- > "first": {"key": "bestDist"}, > "second": {"key": "targetDist"} 158c158 < "number": "targetDist" --- > "number": {"key": "targetDist"} 169c169 < "entity": "target" --- > "entity": {"key": "target"} 187c187 < "entity": "nearestTarget" --- > "entity": {"key": "nearestTarget"} 195c195 < "entity": "nearestTarget" --- > "entity": {"key": "nearestTarget"} 211c211 < } \ No newline at end of file --- > } behaviors\npc\overrides\override-follow.behavior 2a3 > "description": "", 25,26c26,27 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 40,41c41,42 < "type": "entity", < "key": "nearestTarget" --- > "key": {"value": "nearestTarget"}, > "type": {"value": "entity"} 49c50 < "number": 10000 --- > "number": {"value": 10000} 60,61c61,62 < "maxLoops": -1, < "untilSuccess": true --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": true} 79c80 < "list": "followOverrides" --- > "list": {"key": "followOverrides"} 81a83 > "list" : "followOverrides", 101,102c103,104 < "override": "followOverride", < "argumentName": "target" --- > "argumentName": {"value": "target"}, > "override": {"key": "followOverride"} 113c115 < "entity": "target" --- > "entity": {"key": "target"} 124,125c126,127 < "from": "self", < "to": "targetPos" --- > "from": {"key": "self"}, > "to": {"key": "targetPos"} 136,137c138,139 < "first": "bestDist", < "second": "targetDist" --- > "first": {"key": "bestDist"}, > "second": {"key": "targetDist"} 145c147 < "number": "targetDist" --- > "number": {"key": "targetDist"} 156c158 < "entity": "target" --- > "entity": {"key": "target"} 174c176 < "entity": "nearestTarget" --- > "entity": {"key": "nearestTarget"} 195c197 < "entity": "combatTarget" --- > "entity": {"key": "combatTarget"} 209,211c211,213 < "entity": "nearestTarget", < "range": "", < "position": "self" --- > "entity": {"key": "nearestTarget"}, > "position": {"key": "self"}, > "range": {"key": ""} 220,221c222,223 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 229c231 < "entity": "nearestTarget" --- > "entity": {"key": "nearestTarget"} 251,252c253,254 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 266,274c268,275 < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -20, < "pathOptions": {}, < "position": "targetPosition", < "run": true, < "runSpeed": "" --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -20}, > "pathOptions": {"value": {}}, > "position": {"key": "targetPosition"}, > "run": {"value": true}, > "runSpeed": {"key": ""} 277d277 < "direction": "direction", 285,290c285 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 297c292 < "name": "isPathfinding" --- > "name": {"value": "isPathfinding"} 326,327c321,322 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 335c330 < "name": "isPathfinding" --- > "name": {"key": "isPathfinding"} 343c338 < "time": "" --- > "time": {"value": ""} 370c365 < "time": "" --- > "time": {"value": ""} 390c385 < } \ No newline at end of file --- > } behaviors\npc\overrides\override-idle.behavior 21c21 < "list": "idleOverrides" --- > "list": {"key": "idleOverrides"} 32c32 < "name": "idleSuccess" --- > "name": {"value": "idleSuccess"} 40,41c40,41 < "maxLoops": -1, < "untilSuccess": true --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": true} 59c59 < "list": "idleOverrides" --- > "list": {"key": "idleOverrides"} 61a62 > "list" : "idleOverrides", 82,83c83,84 < "fail": 1, < "success": 2 --- > "fail": {"value": 1}, > "success": {"value": 2} 97c98 < "table": "idleOverride" --- > "table": {"key": "idleOverride"} 108,109c109,110 < "override": "override", < "argumentName": "behavior" --- > "argumentName": {"value": "behavior"}, > "override": {"key": "override"} 128c129 < "behavior": "behavior" --- > "behavior": {"key": "behavior"} 140c141 < "name": "idleSuccess" --- > "name": {"value": "idleSuccess"} 154c155 < "name": "idleSuccess" --- > "name": {"key": "idleSuccess"} 159c160 < } \ No newline at end of file --- > } behaviors\npc\overrides\override-notification.behavior 5a6 > "/scripts/behavior/bdata.lua", 20c21 < "name": "notifySuccess" --- > "name": {"value": "notifySuccess"} 28,29c29,30 < "maxLoops": -1, < "untilSuccess": true --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": true} 47c48 < "list": "notificationOverrides" --- > "list": {"key": "notificationOverrides"} 49a51 > "list" : "notificationOverrides", 69,70c71,72 < "fail": 1, < "success": 2 --- > "fail": {"value": 1}, > "success": {"value": 2} 84c86 < "table": "notificationOverride" --- > "table": {"key": "notificationOverride"} 95,96c97,98 < "override": "override", < "argumentName": "behavior" --- > "argumentName": {"value": "behavior"}, > "override": {"key": "override"} 115c117 < "behavior": "behavior" --- > "behavior": {"key": "behavior"} 127c129 < "name": "notifySuccess" --- > "name": {"value": "notifySuccess"} 142c144 < "name": "notifySuccess" --- > "name": {"key": "notifySuccess"} 147c149 < } \ No newline at end of file --- > } behaviors\npc\overrides\overrides.behavior 19,20c19,20 < "fail": 1, < "success": 2 --- > "fail": {"value": 1}, > "success": {"value": 2} 28c28 < "overrideName": "notification" --- > "overrideName": {"value": "notification"} 47,48c47,48 < "fail": 1, < "success": 2 --- > "fail": {"value": 1}, > "success": {"value": 2} 56c56 < "overrideName": "flee" --- > "overrideName": {"value": "flee"} 75,76c75,76 < "fail": 1, < "success": 2 --- > "fail": {"value": 1}, > "success": {"value": 2} 84c84 < "overrideName": "follow" --- > "overrideName": {"value": "follow"} 103,104c103,104 < "fail": 1, < "success": 2 --- > "fail": {"value": 1}, > "success": {"value": 2} 112c112 < "overrideName": "idle" --- > "overrideName": {"value": "idle"} behaviors\npc\quests\quest-barter-target-notification.behavior 2a3 > "description": "", 6,10c7 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 18,23c15 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 30c22 < "type": "requestBarter" --- > "type": {"value": "requestBarter"} 41c33 < "entity": "player" --- > "entity": {"key": "player"} 49c41 < "emote": "wink" --- > "emote": {"value": "wink"} 57,60c49,52 < "dialogType": "barter.trade", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "barter.trade"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 68,69c60,61 < "eventName": "barterConfirmed", < "source": "player" --- > "eventName": {"value": "barterConfirmed"}, > "source": {"key": "player"} behaviors\npc\quests\quest-borrow-notification.behavior 2a3 > "description": "", 6,10c7 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 19,24c16 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 31c23 < "type": "requestLoan" --- > "type": {"value": "requestLoan"} 42c34 < "entity": "player" --- > "entity": {"key": "player"} 50c42 < "emote": "happy" --- > "emote": {"value": "happy"} 58,61c50,53 < "dialogType": "borrow.giftProvided", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "borrow.giftProvided"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 69,70c61,62 < "eventName": "loanProvided", < "source": "player" --- > "eventName": {"value": "loanProvided"}, > "source": {"key": "player"} 78c70 < "time": 2 --- > "time": {"value": 2} behaviors\npc\quests\quest-bribe-notification.behavior 9,13c9 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 27,32c23 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 39c30 < "type": "bribeObjectAdded" --- > "type": {"value": "bribeObjectAdded"} 56,59c47,50 < "dialogType": "bribe.giftAccepted", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "bribe.giftAccepted"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 67,68c58,59 < "eventName": "bribeAccepted", < "source": "player" --- > "eventName": {"value": "bribeAccepted"}, > "source": {"key": "player"} 76c67 < "time": 2 --- > "time": {"value": 2} 84c75 < "entity": "player" --- > "entity": {"key": "player"} 92,95c83,86 < "dialogType": "bribe.giftAccepted2", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "bribe.giftAccepted2"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 104,109c95 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 116c102 < "type": "provideBribe" --- > "type": {"value": "provideBribe"} 127c113 < "entity": "player" --- > "entity": {"key": "player"} 135c121 < "emote": "wink" --- > "emote": {"value": "wink"} 143,144c129,130 < "quest": "override", < "parameterName": "gift" --- > "parameterName": {"value": "gift"}, > "quest": {"key": "override"} 160,165c146 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 172c153 < "item": "gift" --- > "item": {"key": "gift"} 185,186c166,167 < "item": "gift", < "tag": "door" --- > "item": {"key": "gift"}, > "tag": {"value": "door"} 195,199c176,177 < "quest": "override", < "parameterName": "recipientDeed" < }, < "output": { < "entity": "" --- > "parameterName": {"value": "recipientDeed"}, > "quest": {"key": "override"} 207,208c185,186 < "eventName": "requestBribeAddedToHouse", < "source": "player" --- > "eventName": {"value": "requestBribeAddedToHouse"}, > "source": {"key": "player"} 216c194 < "time": 0.5 --- > "time": {"value": 0.5} 224c202 < "entity": "player" --- > "entity": {"key": "player"} 232,235c210,213 < "dialogType": "bribe.requestAdditionToHouse", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "bribe.requestAdditionToHouse"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 244,249c222 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 256,259c229,232 < "dialogType": "bribe.giftAccepted", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "bribe.giftAccepted"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 267,268c240,241 < "eventName": "bribeAccepted", < "source": "player" --- > "eventName": {"value": "bribeAccepted"}, > "source": {"key": "player"} 276c249 < "time": 3 --- > "time": {"value": 3} 284c257 < "entity": "player" --- > "entity": {"key": "player"} 292,295c265,268 < "dialogType": "bribe.giftAccepted2", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "bribe.giftAccepted2"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} behaviors\npc\quests\quest-collect_fine-notification.behavior 2a3 > "description": "", 6,10c7 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 19,24c16 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 31c23 < "type": "collectFine" --- > "type": {"value": "collectFine"} 42c34 < "entity": "player" --- > "entity": {"key": "player"} 50c42 < "emote": "sad" --- > "emote": {"value": "sad"} 58,61c50,53 < "dialogType": "collect_fine.fineCollected", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "collect_fine.fineCollected"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 69,70c61,62 < "eventName": "fineCollected", < "source": "player" --- > "eventName": {"value": "fineCollected"}, > "source": {"key": "player"} 78c70 < "time": 2 --- > "time": {"value": 2} behaviors\npc\quests\quest-collect_gift-notification.behavior 2a3 > "description": "", 6,10c7 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 19,24c16 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 31c23 < "type": "requestGift" --- > "type": {"value": "requestGift"} 42c34 < "entity": "player" --- > "entity": {"key": "player"} 50c42 < "emote": "happy" --- > "emote": {"value": "happy"} 58,61c50,53 < "dialogType": "collect_gift.giftProvided", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "collect_gift.giftProvided"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 69,70c61,62 < "eventName": "giftProvided", < "source": "player" --- > "eventName": {"value": "giftProvided"}, > "source": {"key": "player"} 78c70 < "time": 2 --- > "time": {"value": 2} behaviors\npc\quests\quest-escort-notification.behavior 2a3 > "description": "", 6,11c7,9 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", < "/scripts/actions/quests.lua" --- > "/scripts/actions/npc.lua", > "/scripts/actions/quests.lua", > "/scripts/actions/entity.lua" 24,29c22 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 36c29 < "type": "followEscort" --- > "type": {"value": "followEscort"} 47c40 < "entity": "player" --- > "entity": {"key": "player"} 55c48 < "emote": "happy" --- > "emote": {"value": "happy"} 63,66c56,59 < "dialogType": "escort.found", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "escort.found"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 74,77c67 < "damageTeam": { < "type": "friendly", < "team": 0 < } --- > "damageTeam": {"value": {"type": "friendly", "team": 0}} 85,87c75,77 < "quest": "override", < "name": "interacted", < "bool": true --- > "bool": {"value": true}, > "name": {"value": "interacted"}, > "quest": {"key": "override"} behaviors\npc\quests\quest-escort_trade-questgiver-notification.behavior 7,9c7 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/notification.lua", --- > "/scripts/actions/notification.lua", 11,15c9 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 24c18 < "limit": 1 --- > "limit": {"value": 1} 30,35c24 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 42,43c31,32 < "parameterName": "target", < "quest": "override" --- > "parameterName": {"value": "target"}, > "quest": {"key": "override"} 54,56c43,45 < "entity": "target", < "range": 20, < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "range": {"value": 20} 64,65c53,54 < "type": "escortTradePrepare", < "entity": "target" --- > "entity": {"key": "target"}, > "type": {"value": "escortTradePrepare"} 73c62 < "entity": "target" --- > "entity": {"key": "target"} 81c70 < "emote": "happy" --- > "emote": {"value": "happy"} 94,95c83,84 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 103c92 < "entity": "target" --- > "entity": {"key": "target"} 119,121c108,110 < "entity": "target", < "range": 5, < "position": "self" --- > "entity": {"key": "target"}, > "position": {"key": "self"}, > "range": {"value": 5} 130,137c119,125 < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "pathOptions": {}, < "position": "targetPosition", < "run": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "pathOptions": {"value": {}}, > "position": {"key": "targetPosition"}, > "run": {"value": false} 140d127 < "direction": "direction", 152c139 < "entity": "target" --- > "entity": {"key": "target"} 160,163c147,150 < "dialogType": "escort_trade.collectDelivery", < "entity": "target", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "escort_trade.collectDelivery"}, > "entity": {"key": "target"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 171,172c158,159 < "type": "escortTrade", < "entity": "target" --- > "entity": {"key": "target"}, > "type": {"value": "escortTrade"} 180c167 < "time": 4 --- > "time": {"value": 4} 188c175 < "eventName": "escortComplete" --- > "eventName": {"value": "escortComplete"} 200c187 < } \ No newline at end of file --- > } behaviors\npc\quests\quest-escort_trade-target-notification.behavior 9,16c9,10 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua" --- > "/scripts/actions/npc.lua", > "/scripts/actions/world.lua" 29,34c23 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 41c30 < "type": "escortTrade" --- > "type": {"value": "escortTrade"} 52c41 < "entity": "questGiver" --- > "entity": {"key": "questGiver"} 60c49 < "time": 2 --- > "time": {"value": 2} 68,71c57,60 < "dialogType": "escort_trade.provideDelivery", < "entity": "questGiver", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "escort_trade.provideDelivery"}, > "entity": {"key": "questGiver"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 79c68 < "dance": "postmail" --- > "dance": {"value": "postmail"} 87c76 < "time": 2 --- > "time": {"value": 2} 96,101c85 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 108c92 < "type": "escortTradePrepare" --- > "type": {"value": "escortTradePrepare"} 119c103 < "entity": "questGiver" --- > "entity": {"key": "questGiver"} 127c111 < "emote": "happy" --- > "emote": {"value": "happy"} 140,141c124,125 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 149c133 < "entity": "questGiver" --- > "entity": {"key": "questGiver"} 165,167c149,151 < "entity": "questGiver", < "range": 5, < "position": "self" --- > "entity": {"key": "questGiver"}, > "position": {"key": "self"}, > "range": {"value": 5} 176,183c160,166 < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "pathOptions": {}, < "position": "targetPosition", < "run": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "pathOptions": {"value": {}}, > "position": {"key": "targetPosition"}, > "run": {"value": false} 186d168 < "direction": "direction", 198,199c180,181 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 207c189 < "entity": "questGiver" --- > "entity": {"key": "questGiver"} 215c197 < "time": 20 --- > "time": {"value": 20} 224c206 < } \ No newline at end of file --- > } behaviors\npc\quests\quest-extort-notification.behavior 2a3 > "description": "", 6,10c7 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 19,24c16 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 31c23 < "type": "attemptExtortion" --- > "type": {"value": "attemptExtortion"} 42c34 < "entity": "player" --- > "entity": {"key": "player"} 50c42 < "emote": "happy" --- > "emote": {"value": "happy"} 58,61c50,53 < "dialogType": "extort.giftProvided", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "extort.giftProvided"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 69,70c61,62 < "eventName": "extortionSuccess", < "source": "player" --- > "eventName": {"value": "extortionSuccess"}, > "source": {"key": "player"} 78c70 < "time": 2 --- > "time": {"value": 2} behaviors\npc\quests\quest-gift-notification.behavior 9,13c9 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 27,32c23 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 39c30 < "type": "giftObjectAdded" --- > "type": {"value": "giftObjectAdded"} 56,59c47,50 < "dialogType": "gift.giftAccepted", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "gift.giftAccepted"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 67,68c58,59 < "eventName": "giftAccepted", < "source": "player" --- > "eventName": {"value": "giftAccepted"}, > "source": {"key": "player"} 76c67 < "time": 2 --- > "time": {"value": 2} 84c75 < "entity": "player" --- > "entity": {"key": "player"} 92,95c83,86 < "dialogType": "gift.giftAccepted2", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "gift.giftAccepted2"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 104,109c95 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 116c102 < "type": "provideGift" --- > "type": {"value": "provideGift"} 127c113 < "entity": "player" --- > "entity": {"key": "player"} 135c121 < "emote": "happy" --- > "emote": {"value": "happy"} 143,144c129,130 < "quest": "override", < "parameterName": "gift" --- > "parameterName": {"value": "gift"}, > "quest": {"key": "override"} 160,165c146 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 172c153 < "item": "gift" --- > "item": {"key": "gift"} 185,186c166,167 < "item": "gift", < "tag": "door" --- > "item": {"key": "gift"}, > "tag": {"value": "door"} 195,196c176,177 < "quest": "override", < "parameterName": "recipientDeed" --- > "parameterName": {"value": "recipientDeed"}, > "quest": {"key": "override"} 204,205c185,186 < "eventName": "requestGiftAddedToHouse", < "source": "player" --- > "eventName": {"value": "requestGiftAddedToHouse"}, > "source": {"key": "player"} 213c194 < "time": 0.5 --- > "time": {"value": 0.5} 221c202 < "entity": "player" --- > "entity": {"key": "player"} 229,232c210,213 < "dialogType": "gift.requestAdditionToHouse", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "gift.requestAdditionToHouse"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 241,246c222 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 253,256c229,232 < "dialogType": "gift.giftAccepted", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "gift.giftAccepted"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 264,265c240,241 < "eventName": "giftAccepted", < "source": "player" --- > "eventName": {"value": "giftAccepted"}, > "source": {"key": "player"} 273c249 < "time": 2 --- > "time": {"value": 2} 281c257 < "entity": "player" --- > "entity": {"key": "player"} 289,292c265,268 < "dialogType": "gift.giftAccepted2", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "gift.giftAccepted2"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} behaviors\npc\quests\quest-hat-friend-notification.behavior 7,11c7 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 20,25c16 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 32c23 < "type": "requestHatCraft" --- > "type": {"value": "requestHatCraft"} 43c34 < "entity": "player" --- > "entity": {"key": "player"} 51c42 < "emote": "wink" --- > "emote": {"value": "wink"} 59,62c50,53 < "dialogType": "hat.crafting", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "hat.crafting"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 70c61 < "time": 2 --- > "time": {"value": 2} 78,81c69,72 < "dialogType": "hat.crafted", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "hat.crafted"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 89,90c80,81 < "eventName": "hatCrafted", < "source": "player" --- > "eventName": {"value": "hatCrafted"}, > "source": {"key": "player"} behaviors\npc\quests\quest-hat-questGiver-notification.behavior 7,11c7 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 19,24c15 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 31c22 < "type": "wearHat" --- > "type": {"value": "wearHat"} 42c33 < "entity": "player" --- > "entity": {"key": "player"} 50c41 < "emote": "happy" --- > "emote": {"value": "happy"} 58,59c49,50 < "quest": "override", < "parameterName": "clothing" --- > "parameterName": {"value": "clothing"}, > "quest": {"key": "override"} 70,71c61,62 < "itemTable": "clothing", < "vanitySlot": true --- > "itemTable": {"key": "clothing"}, > "vanitySlot": {"value": true} 84,87c75 < "parameters": { < "quest": "override", < "entityParamName": "questGiver" < } --- > "parameters": {} 100,101c88,89 < "eventName": "hatWorn", < "source": "player" --- > "eventName": {"value": "hatWorn"}, > "source": {"key": "player"} behaviors\npc\quests\quest-helmet-friend-notification.behavior 2a3 > "description": "", 6,10c7 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 19,24c16 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 31c23 < "type": "requestHelmetCraft" --- > "type": {"value": "requestHelmetCraft"} 42c34 < "entity": "player" --- > "entity": {"key": "player"} 50c42 < "emote": "wink" --- > "emote": {"value": "wink"} 58,61c50,53 < "dialogType": "helmet.crafting", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "helmet.crafting"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 69c61 < "time": 2 --- > "time": {"value": 2} 77,80c69,72 < "dialogType": "helmet.crafted", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "helmet.crafted"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 88,89c80,81 < "eventName": "helmetCrafted", < "source": "player" --- > "eventName": {"value": "helmetCrafted"}, > "source": {"key": "player"} behaviors\npc\quests\quest-helmet-questGiver-notification.behavior 2a3 > "description": "", 6,10c7 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 18,23c15 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 30c22 < "type": "wearHelmet" --- > "type": {"value": "wearHelmet"} 41c33 < "entity": "player" --- > "entity": {"key": "player"} 49c41 < "emote": "happy" --- > "emote": {"value": "happy"} 57,58c49,50 < "quest": "override", < "parameterName": "clothing" --- > "parameterName": {"value": "clothing"}, > "quest": {"key": "override"} 69,70c61,62 < "itemTable": "clothing", < "vanitySlot": true --- > "itemTable": {"key": "clothing"}, > "vanitySlot": {"value": true} 83,86c75 < "parameters": { < "quest": "override", < "entityParamName": "questGiver" < } --- > "parameters": {} 99,100c88,89 < "eventName": "helmetWorn", < "source": "player" --- > "eventName": {"value": "helmetWorn"}, > "source": {"key": "player"} behaviors\npc\quests\quest-intimidate-notification.behavior 2a3 > "description": "", 6,10c7 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 25,30c22 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 37c29 < "type": "intimidate" --- > "type": {"value": "intimidate"} 48c40 < "entity": "player" --- > "entity": {"key": "player"} 56c48 < "emote": "OOOH" --- > "emote": {"value": "OOOH"} 64c56 < "dance": "panic" --- > "dance": {"value": "panic"} 72c64 < "time": 1 --- > "time": {"value": 1} 80,83c72,75 < "dialogType": "intimidate.intimidated", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "intimidate.intimidated"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 91,92c83,84 < "eventName": "intimidated", < "source": "player" --- > "eventName": {"value": "intimidated"}, > "source": {"key": "player"} 100c92 < "time": 2 --- > "time": {"value": 2} 109,114c101 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 121c108 < "type": "failToIntimidate" --- > "type": {"value": "failToIntimidate"} 132c119 < "entity": "player" --- > "entity": {"key": "player"} 140,143c127,130 < "dialogType": "intimidate.notIntimidated", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "intimidate.notIntimidated"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 151c138 < "emote": "laugh" --- > "emote": {"value": "laugh"} 159c146 < "time": 2 --- > "time": {"value": 2} behaviors\npc\quests\quest-kidnapping-idle.behavior 2a3 > "description": "", 4,8c5 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua" --- > "/scripts/actions/npc.lua" 16c13 < "emote": "sad" --- > "emote": {"value": "sad"} behaviors\npc\quests\quest-kidnapping-notification.behavior 6a7 > "/scripts/actions/entity.lua", 11,17c12 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua" --- > "/scripts/actions/npc.lua" 30,35c25 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 42c32 < "type": "kidnappersDead" --- > "type": {"value": "kidnappersDead"} 53c43 < "name": "arrivedHome" --- > "name": {"value": "arrivedHome"} 61,64c51 < "damageTeam": { < "type": "friendly", < "team": 0 < } --- > "damageTeam": {"value": {"type": "friendly", "team": 0}} 72,73c59,60 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 81c68 < "entity": "player" --- > "entity": {"key": "player"} 88,93c75 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 100,103c82,85 < "dialogType": "kidnapping.kidnappersDead", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "kidnapping.kidnappersDead"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 111c93 < "time": 2 --- > "time": {"value": 2} 119,122c101,104 < "dialogType": "kidnapping.followHome", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "kidnapping.followHome"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 135,140c117 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 152c129 < "name": "arrivedHome" --- > "name": {"key": "arrivedHome"} 161,162c138,139 < "parameterName": "questGiver", < "quest": "override" --- > "parameterName": {"value": "questGiver"}, > "quest": {"key": "override"} 173,175c150,152 < "entity": "questGiver", < "range": 20, < "position": "self" --- > "entity": {"key": "questGiver"}, > "position": {"key": "self"}, > "range": {"value": 20} 188,189c165,166 < "fail": 1, < "success": 2 --- > "fail": {"value": 1}, > "success": {"value": 2} 197c174 < "time": 2 --- > "time": {"value": 2} 204,209c181 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 216c188 < "entity": "questGiver" --- > "entity": {"key": "questGiver"} 227c199 < "emote": "happy" --- > "emote": {"value": "happy"} 243,245c215,217 < "entity": "questGiver", < "range": 3, < "position": "self" --- > "entity": {"key": "questGiver"}, > "position": {"key": "self"}, > "range": {"value": 3} 253,259c225,230 < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "position": "questGiver", < "run": true --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "position": {"key": "questGiver"}, > "run": {"value": true} 262d232 < "direction": "direction", 276c246 < "name": "arrivedHome" --- > "name": {"value": "arrivedHome"} 284,286c254,256 < "type": "kidnappingVictimRescued", < "entity": "questGiver", < "target": "self" --- > "entity": {"key": "questGiver"}, > "target": {"key": "self"}, > "type": {"value": "kidnappingVictimRescued"} 293c263 < } \ No newline at end of file --- > } behaviors\npc\quests\quest-kidnapping-questgiver-notification.behavior 2a3 > "description": "", 18,23c19 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 30c26 < "type": "kidnappingVictimRescued" --- > "type": {"value": "kidnappingVictimRescued"} 41c37 < "entity": "victim" --- > "entity": {"key": "victim"} behaviors\npc\quests\quest-kill_npc-enemy-notification.behavior 9,10c9 < "/scripts/actions/entity.lua", < "/scripts/actions/movement.lua", --- > "/scripts/actions/movement.lua", 11a11 > "/scripts/actions/npc.lua", 13,16d12 < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", 18c14 < "/scripts/tenant.lua" --- > "/scripts/actions/tenant.lua" 21,24c17 < "friendlyNpcTypes": [ < "villager", < "crewmember" < ] --- > "friendlyNpcTypes": ["villager", "crewmember"] 37c30 < "limit": 1 --- > "limit": {"value": 1} 49,54c42 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 61c49 < "chance": 0.5 --- > "chance": {"value": 0.5} 69c57 < "name": "willSurrender" --- > "name": {"value": "willSurrender"} 82,87c70 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 94c77 < "chance": 0.5 --- > "chance": {"value": 0.5} 102c85 < "name": "willBetray" --- > "name": {"value": "willBetray"} 115,120c98 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 127c105 < "chance": 0.5 --- > "chance": {"value": 0.5} 135c113 < "name": "willSpawnBackup" --- > "name": {"value": "willSpawnBackup"} 145c123 < "name": "willSpawnBackup" --- > "name": {"value": "willSpawnBackup"} 157c135 < "name": "willBetray" --- > "name": {"value": "willBetray"} 169c147 < "name": "willSurrender" --- > "name": {"value": "willSurrender"} 180c158 < "limit": 1 --- > "limit": {"value": 1} 186,191c164 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 198c171 < "entity": "self" --- > "entity": {"key": "self"} 209,210c182,183 < "first": 0.5, < "second": "health" --- > "first": {"value": 0.5}, > "second": {"key": "health"} 218c191 < "name": "willSurrender" --- > "name": {"key": "willSurrender"} 226,232c199,203 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 30, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 30}, > "withoutEntity": {"key": "self"} 243c214 < "entity": "player" --- > "entity": {"key": "player"} 251,254c222,225 < "dialogType": "kill_npc.surrender", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "kill_npc.surrender"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 267,268c238,239 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 280,285c251 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 292c258 < "entity": "self" --- > "entity": {"key": "self"} 306c272 < "slot": "primary" --- > "slot": {"value": "primary"} 321,324c287 < "parameters": {}, < "output": { < "damageSource": "" < } --- > "parameters": {} 332c295 < "entity": "player" --- > "entity": {"key": "player"} 339,344c302 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 351c309 < "entity": "player" --- > "entity": {"key": "player"} 359c317 < "dance": "panic" --- > "dance": {"value": "panic"} 378c336 < "entity": "player" --- > "entity": {"key": "player"} 390,393c348 < "parameters": {}, < "output": { < "damageSource": "" < } --- > "parameters": {} 406,411c361 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 418c368 < "name": "willBetray" --- > "name": {"key": "willBetray"} 426,429c376,379 < "dialogType": "kill_npc.betray", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "kill_npc.betray"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 447,452c397 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 459c404 < "name": "willSpawnBackup" --- > "name": {"key": "willSpawnBackup"} 467,471c412,413 < "offset": [ < -10, < 0 < ], < "position": "self" --- > "offset": {"value": [-10, 0]}, > "position": {"key": "self"} 482,483c424,425 < "maxLoops": 5, < "untilSuccess": false --- > "maxLoops": {"value": 5}, > "untilSuccess": {"value": false} 494,499c436 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 510,515c447 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 527,529c459,461 < "position": "self", < "target": "position", < "range": 2 --- > "position": {"key": "self"}, > "range": {"value": 2}, > "target": {"key": "position"} 538,541c470,473 < "avoidLiquid": false, < "maxHeight": 5, < "minHeight": -5, < "position": "position" --- > "avoidLiquid": {"value": false}, > "maxHeight": {"value": 5}, > "minHeight": {"value": -5}, > "position": {"key": "position"} 552,553c484,485 < "position": "adjustedPosition", < "type": "bandit" --- > "position": {"key": "adjustedPosition"}, > "type": {"value": "bandit"} 564,568c496,497 < "offset": [ < 5, < 0 < ], < "position": "position" --- > "offset": {"value": [5, 0]}, > "position": {"key": "position"} 587,592c516 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 599c523 < "npcType": "" --- > "npcType": {"value": ""} behaviors\npc\quests\quest-kill_npcs-assistant-notification.behavior 2a3 > "description": "", 18c19 < "limit": 1 --- > "limit": {"value": 1} 24,29c25 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 36,38c32,34 < "dialogType": "kill_npcs.assistantIntro", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "kill_npcs.assistantIntro"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} behaviors\npc\quests\quest-new_stock-questGiver-notification.behavior 7,11c7 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 20,25c16 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 32c23 < "type": "stockDelivered" --- > "type": {"value": "stockDelivered"} 43c34 < "entity": "player" --- > "entity": {"key": "player"} 51c42 < "emote": "happy" --- > "emote": {"value": "happy"} 59,60c50,51 < "quest": "override", < "parameterName": "newItem" --- > "parameterName": {"value": "newItem"}, > "quest": {"key": "override"} 71c62 < "item": "item" --- > "item": {"key": "item"} 79,80c70,71 < "eventName": "stockAccepted", < "source": "player" --- > "eventName": {"value": "stockAccepted"}, > "source": {"key": "player"} behaviors\npc\quests\quest-new_stock-target-notification.behavior 7,11c7 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 19,24c15 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 31c22 < "type": "requestTrade" --- > "type": {"value": "requestTrade"} 42c33 < "entity": "player" --- > "entity": {"key": "player"} 50c41 < "emote": "wink" --- > "emote": {"value": "wink"} 58,61c49,52 < "dialogType": "new_stock.trade", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "new_stock.trade"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 69,70c60,61 < "eventName": "tradeAccepted", < "source": "player" --- > "eventName": {"value": "tradeAccepted"}, > "source": {"key": "player"} behaviors\npc\quests\quest-request_craft-notification.behavior 7,11c7 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 20,25c16 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 32c23 < "type": "requestCraftedGift" --- > "type": {"value": "requestCraftedGift"} 43c34 < "entity": "player" --- > "entity": {"key": "player"} 51c42 < "emote": "happy" --- > "emote": {"value": "happy"} 59,62c50,53 < "dialogType": "request_craft.giftProvided", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "request_craft.giftProvided"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 70,71c61,62 < "eventName": "craftedGiftProvided", < "source": "player" --- > "eventName": {"value": "craftedGiftProvided"}, > "source": {"key": "player"} 79c70 < "time": 2 --- > "time": {"value": 2} behaviors\npc\quests\quest-return_stolen-idle.behavior 2a3 > "description": "", 7,9c8 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/movement.lua" --- > "/scripts/actions/movement.lua" 29,31c28,30 < "position": "self", < "target": "spawn", < "range": 10 --- > "position": {"key": "self"}, > "range": {"value": 10}, > "target": {"key": "spawn"} 47,48c46,47 < "fail": 1, < "success": 2 --- > "fail": {"value": 1}, > "success": {"value": 2} 62,63c61,62 < "override": "override", < "argumentName": "target" --- > "argumentName": {"value": "target"}, > "override": {"key": "override"} 74c73 < "entity": "object" --- > "entity": {"key": "object"} 99,101c98,100 < "position": "self", < "target": "objectPos", < "range": 5 --- > "position": {"key": "self"}, > "range": {"value": 5}, > "target": {"key": "objectPos"} 109,115c108,113 < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "position": "objectPos", < "run": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "position": {"key": "objectPos"}, > "run": {"value": false} 118d115 < "direction": "direction", 136c133 < } \ No newline at end of file --- > } behaviors\npc\quests\quest-return_stolen-notification.behavior 2a3 > "description": "", 7,11c8 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 19,24c16 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 31c23 < "type": "objectTaken" --- > "type": {"value": "objectTaken"} 42c34 < "entity": "player" --- > "entity": {"key": "player"} 50,53c42,45 < "dialogType": "return_stolen.objectTaken", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "return_stolen.objectTaken"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 61c53 < "emote": "annoyed" --- > "emote": {"value": "annoyed"} 69c61 < "time": 5 --- > "time": {"value": 5} behaviors\npc\quests\quest-share_secret-notification.behavior 8,12c8 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 20,25c16 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 32c23 < "type": "shareSecret" --- > "type": {"value": "shareSecret"} 43c34 < "entity": "player" --- > "entity": {"key": "player"} 51,54c42,45 < "dialogType": "share_secret.pleaseTakeReply", < "entity": "player", < "extraTags": {}, < "quest": "override" --- > "dialogType": {"value": "share_secret.pleaseTakeReply"}, > "entity": {"key": "player"}, > "extraTags": {"value": {}}, > "quest": {"key": "override"} 62,63c53,54 < "eventName": "secretShared", < "source": "player" --- > "eventName": {"value": "secretShared"}, > "source": {"key": "player"} 71c62 < "emote": "laugh" --- > "emote": {"value": "laugh"} 79c70 < "time": 5 --- > "time": {"value": 5} behaviors\npc\quests\quest-stay_at_home-idle.behavior 24,26c24,26 < "cooldown": 20, < "onFail": false, < "onSuccess": true --- > "cooldown": {"value": 20}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 39,41c39,41 < "position": "self", < "target": "spawn", < "range": 2 --- > "position": {"key": "self"}, > "range": {"value": 2}, > "target": {"key": "spawn"} behaviors\npc\quests\quest-steal.behavior 2a3 > "description": "", 5,9c6,7 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua" --- > "/scripts/actions/dialog.lua", > "/scripts/actions/npc.lua" 23c21 < "time": 10 --- > "time": {"value": 10} 31,32c29,30 < "content": "Don't get caught!", < "tags": {} --- > "content": {"value": "Don't get caught!"}, > "tags": {"value": {}} 40c38 < "emote": "laugh" --- > "emote": {"value": "laugh"} 48c46 < "time": 10 --- > "time": {"value": 10} behaviors\npc\reactions\beamaway.behavior 2a3 > "description": "", 4,8c5 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 25c22 < "dance": "flipswitch" --- > "dance": {"value": "flipswitch"} 33c30 < "time": 0.25 --- > "time": {"value": 0.25} 41c38 < "emote": "oooh" --- > "emote": {"value": "oooh"} 49c46 < "time": 0.75 --- > "time": {"value": 0.75} 57c54 < "name": "beamaway" --- > "name": {"value": "beamaway"} 65c62 < "time": 1 --- > "time": {"value": 1} 73c70 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} behaviors\npc\reactions\bored.behavior 2a3 > "description": "", 4,8c5 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 25c22 < "emote": "sleep" --- > "emote": {"value": "sleep"} 33c30 < "time": 0.5 --- > "time": {"value": 0.5} 41,42c38,39 < "name": "bored", < "duration": "2" --- > "duration": {"key": "2"}, > "name": {"value": "bored"} 50c47 < "time": 1.5 --- > "time": {"value": 1.5} 58,61c55 < "velocity": [ < 0, < 15 < ] --- > "velocity": {"value": [0, 15]} behaviors\npc\reactions\burn.behavior 6,10c6 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 18,23c14 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 30c21 < "name": "burning" --- > "name": {"value": "burning"} 38c29 < "emote": "oooh" --- > "emote": {"value": "oooh"} 46c37 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} behaviors\npc\reactions\comfort.behavior 6,8d5 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/position.lua", 10,14c7,8 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/position.lua", > "/scripts/actions/npc.lua", 22,27c16 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 34c23 < "entity": "self" --- > "entity": {"key": "self"} 45c34 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 56,57c45,46 < "entity": "self", < "target": "reactTarget" --- > "entity": {"key": "self"}, > "target": {"key": "reactTarget"} 68,70c57,59 < "direction": "direction", < "multiplier": -1.3, < "position": "reactTargetPos" --- > "direction": {"key": "direction"}, > "multiplier": {"value": -1.3}, > "position": {"key": "reactTargetPos"} 81,87c70,75 < "avoidLiquid": true, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "position": "standPos", < "run": false, < "failFast": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "position": {"key": "standPos"}, > "run": {"value": false} 90d77 < "direction": "direction", 99c86 < "entity": "self" --- > "entity": {"key": "self"} 110,113c97,99 < "footPosition": false, < "position": "standPos", < "x": null, < "y": "selfY" --- > "footPosition": {"value": false}, > "position": {"key": "standPos"}, > "y": {"key": "selfY"} 121c107 < "emote": "sleep" --- > "emote": {"value": "sleep"} 129c115 < "dance": "comfort" --- > "dance": {"value": "comfort"} 137c123 < "time": 3.5 --- > "time": {"value": 3.5} 145,151c131,136 < "avoidLiquid": true, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "position": "origPos", < "run": false, < "failFast": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "position": {"key": "origPos"}, > "run": {"value": false} 154d138 < "direction": "direction", 163c147 < "entity": "self" --- > "entity": {"key": "self"} 174,177c158,160 < "footPosition": false, < "position": "origPos", < "x": null, < "y": "selfY" --- > "footPosition": {"value": false}, > "position": {"key": "origPos"}, > "y": {"key": "selfY"} 185c168 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 190c173 < } \ No newline at end of file --- > } behaviors\npc\reactions\crouch.behavior 5c5,6 < "/scripts/actions/time.lua" --- > "/scripts/actions/time.lua", > "/scripts/actions/movement.lua" 19c20 < "time": 0.5 --- > "time": {"value": 0.5} 27,28c28,29 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 42c43 < "time": 1 --- > "time": {"value": 1} 52c53 < "time": 0.5 --- > "time": {"value": 0.5} behaviors\npc\reactions\crouchcollect.behavior 5,9c5,6 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", > "/scripts/actions/movement.lua", 24c21 < "dance": "crouchcollect" --- > "dance": {"value": "crouchcollect"} 32,33c29,30 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 47c44 < "time": 1.5 --- > "time": {"value": 1.5} 57c54 < "time": 0.5 --- > "time": {"value": 0.5} behaviors\npc\reactions\crouchwarm.behavior 5,9c5,6 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", > "/scripts/actions/movement.lua", 24c21 < "dance": "crouchwarm" --- > "dance": {"value": "crouchwarm"} 32,33c29,30 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 47c44 < "time": 4 --- > "time": {"value": 4} behaviors\npc\reactions\drum.behavior 2a3 > "description": "", 4c5 < "/scripts/actions/entity.lua", --- > "/scripts/actions/npc.lua", 6,12c7 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/time.lua" --- > "/scripts/actions/time.lua" 26c21 < "dance": "typing" --- > "dance": {"value": "typing"} 34c29 < "emote": "happy" --- > "emote": {"value": "happy"} 42,43c37,38 < "maxLoops": 8, < "untilSuccess": false --- > "maxLoops": {"value": 8}, > "untilSuccess": {"value": false} 49,54c44 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 61c51 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 69c59 < "time": 0.25 --- > "time": {"value": 0.25} 80c70 < "time": 0.25 --- > "time": {"value": 0.25} behaviors\npc\reactions\explode.behavior 6,8c6 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/projectiles.lua" --- > "/scripts/actions/projectiles.lua" 28c26 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 39,50c37,44 < "position": "reactTargetPos", < "offset": [ < 0, < 0 < ], < "projectileType": "regularexplosionuniversal", < "angle": 0, < "sourceEntity": "reactTarget", < "trackSource": false, < "projectileConfig": {}, < "scalePower": true, < "power": 50 --- > "angle": {"value": 0}, > "offset": {"value": [0, 0]}, > "position": {"key": "reactTargetPos"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "regularexplosionuniversal"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "reactTarget"}, > "trackSource": {"value": false} 60,71c54,61 < "position": "self", < "offset": [ < 0, < 0 < ], < "projectileType": "regularexplosionuniversal", < "angle": 0, < "sourceEntity": "self", < "trackSource": false, < "projectileConfig": {}, < "scalePower": true, < "power": 50 --- > "angle": {"value": 0}, > "offset": {"value": [0, 0]}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "regularexplosionuniversal"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} behaviors\npc\reactions\flee.behavior 2a3 > "description": "", 6,10c7 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua" --- > "/scripts/actions/npc.lua" 20,21c17,18 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 29c26 < "time": "" --- > "time": {"value": ""} 43c40 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 54c51 < "emote": "oooh" --- > "emote": {"value": "oooh"} behaviors\npc\reactions\flirtwithplayer.behavior 2a3 > "description": "", 5,9c6 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 12,14c9 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/position.lua", --- > "/scripts/actions/position.lua", 30c25 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 38c33 < "emote": "happy" --- > "emote": {"value": "happy"} 46c41 < "dance": "wave" --- > "dance": {"value": "wave"} 54c49 < "time": 1 --- > "time": {"value": 1} 62,63c57,58 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 77c72 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 88,89c83,84 < "entity": "self", < "target": "reactTarget" --- > "entity": {"key": "self"}, > "target": {"key": "reactTarget"} 92,93c87 < "direction": "direction", < "vector": "" --- > "direction": "direction" 101,103c95,97 < "direction": "direction", < "multiplier": -2, < "position": "reactTargetPos" --- > "direction": {"key": "direction"}, > "multiplier": {"value": -2}, > "position": {"key": "reactTargetPos"} 116,122c110,115 < "avoidLiquid": true, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "position": "standPos", < "run": false, < "failFast": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "position": {"key": "standPos"}, > "run": {"value": false} 125d117 < "direction": "direction", 136c128 < "emote": "wink" --- > "emote": {"value": "wink"} 144c136 < "time": 2 --- > "time": {"value": 2} 152c144 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 174,175c166,167 < "first": "money", < "second": 20000 --- > "first": {"key": "money"}, > "second": {"value": 20000} 183,184c175,176 < "fail": 1, < "success": 2 --- > "fail": {"value": 1}, > "success": {"value": 2} 192,193c184,185 < "fail": 3, < "success": 3 --- > "fail": {"value": 3}, > "success": {"value": 3} 207c199 < "time": 2 --- > "time": {"value": 2} 221c213 < "emote": "wink" --- > "emote": {"value": "wink"} 235c227 < "emote": "happy" --- > "emote": {"value": "happy"} 243c235 < "name": "love" --- > "name": {"value": "love"} 263c255 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 274,275c266,267 < "entity": "self", < "target": "reactTarget" --- > "entity": {"key": "self"}, > "target": {"key": "reactTarget"} 278,279c270 < "direction": "direction", < "vector": "" --- > "direction": "direction" 287,289c278,280 < "direction": "direction", < "multiplier": -1, < "position": "reactTargetPos" --- > "direction": {"key": "direction"}, > "multiplier": {"value": -1}, > "position": {"key": "reactTargetPos"} 302,308c293,298 < "avoidLiquid": true, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "position": "standPos", < "run": false, < "failFast": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "position": {"key": "standPos"}, > "run": {"value": false} 311d300 < "direction": "direction", 327c316 < "time": 30 --- > "time": {"value": 30} 338c327 < } \ No newline at end of file --- > } behaviors\npc\reactions\follow.behavior 2a3 > "description": "", 5,7c6 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/movement.lua", --- > "/scripts/actions/movement.lua", 10,14c9 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua" --- > "/scripts/actions/npc.lua" 25,26c20,21 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 46,48c41,43 < "entity": "reactTarget", < "range": 4, < "position": "self" --- > "entity": {"key": "reactTarget"}, > "position": {"key": "self"}, > "range": {"value": 4} 56c51 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 66,67c61,62 < "fail": -1, < "success": 2 --- > "fail": {"value": -1}, > "success": {"value": 2} 75c70 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 86,92c81,86 < "avoidLiquid": true, < "groundPosition": true, < "maxGround": 2, < "minGround": -5, < "position": "reactTarget", < "run": true, < "failFast": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 2}, > "minGround": {"value": -5}, > "position": {"key": "reactTarget"}, > "run": {"value": true} 94,96c88 < "output": { < "direction": "direction" < } --- > "output": {} 103,105c95,97 < "entity": "reactTarget", < "range": 2, < "position": "self" --- > "entity": {"key": "reactTarget"}, > "position": {"key": "self"}, > "range": {"value": 2} 122c114 < "time": "" --- > "time": {"value": ""} 136c128 < "shouldRun": "" --- > "shouldRun": {"key": ""} 149c141 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 160,161c152,153 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 169c161 < "time": 4 --- > "time": {"value": 4} 177,179c169,171 < "position": "reactTargetPos", < "target": "reactTarget", < "range": 1 --- > "position": {"key": "reactTargetPos"}, > "range": {"value": 1}, > "target": {"key": "reactTarget"} 189c181 < "emote": "happy" --- > "emote": {"value": "happy"} 197c189 < "time": 1 --- > "time": {"value": 1} 206c198 < } \ No newline at end of file --- > } behaviors\npc\reactions\gohome.behavior 2a3 > "description": "", 24c25 < "time": 2 --- > "time": {"value": 2} behaviors\npc\reactions\gong.behavior 5,9c5 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 11,13c7 < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua" --- > "/scripts/actions/world.lua" 27c21 < "dance": "punch" --- > "dance": {"value": "punch"} 35c29 < "time": 0.25 --- > "time": {"value": 0.25} 43c37 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 51c45 < "time": 0.25 --- > "time": {"value": 0.25} behaviors\npc\reactions\hop.behavior 13,18c13 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 25,28c20 < "velocity": [ < 0, < 25 < ] --- > "velocity": {"value": [0, 25]} 36c28 < "time": 2 --- > "time": {"value": 2} behaviors\npc\reactions\hurthop.behavior 2a3 > "description": "", 5,13c6 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/math.lua", --- > "/scripts/actions/npc.lua", 14a8 > "/scripts/actions/math.lua", 22,27c16 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 34c23 < "name": "redflash" --- > "name": {"value": "redflash"} 42c31 < "emote": "oooh" --- > "emote": {"value": "oooh"} 50,51c39,40 < "entity": "reactTarget", < "target": "self" --- > "entity": {"key": "reactTarget"}, > "target": {"key": "self"} 62,63c51,52 < "number": "direction", < "factor": 10 --- > "factor": {"value": 10}, > "number": {"key": "direction"} 74,76c63,64 < "velocity": null, < "x": "xvel", < "y": 25 --- > "x": {"key": "xvel"}, > "y": {"value": 25} 84c72 < "time": 0.8 --- > "time": {"value": 0.8} 92c80 < "emote": "annoyed" --- > "emote": {"value": "annoyed"} 100c88 < "time": 2 --- > "time": {"value": 2} behaviors\npc\reactions\jumpforjoy.behavior 5,9c5 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 25c21 < "emote": "happy" --- > "emote": {"value": "happy"} 33,34c29,30 < "maxLoops": 3, < "untilSuccess": false --- > "maxLoops": {"value": 3}, > "untilSuccess": {"value": false} 41,42c37,38 < "maxLoops": -1, < "untilSuccess": true --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": true} 55c51 < "time": 0.2 --- > "time": {"value": 0.2} 69,72c65 < "velocity": [ < 0, < 15 < ] --- > "velocity": {"value": [0, 15]} 84c77 < "time": 2 --- > "time": {"value": 2} behaviors\npc\reactions\love.behavior 5,9c5 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 25c21 < "emote": "happy" --- > "emote": {"value": "happy"} 33c29 < "name": "love" --- > "name": {"value": "love"} 41c37 < "time": 2 --- > "time": {"value": 2} behaviors\npc\reactions\mourn.behavior 2a3 > "description": "", 4,8c5,6 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", > "/scripts/actions/movement.lua", 23c21 < "dance": "mourn" --- > "dance": {"value": "mourn"} 31,32c29,30 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 45,50c43 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 57c50 < "time": 0.5 --- > "time": {"value": 0.5} 65c58 < "emote": "sad" --- > "emote": {"value": "sad"} 73c66 < "time": 2.5 --- > "time": {"value": 2.5} behaviors\npc\reactions\nosebleed.behavior 5,10c5 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/movement.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 12,15c7,8 < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/math.lua", --- > "/scripts/actions/movement.lua", > "/scripts/actions/math.lua", 30c23 < "emote": "happy" --- > "emote": {"value": "happy"} 38c31 < "time": 1 --- > "time": {"value": 1} 46,47c39,40 < "entity": "self", < "target": "reactTarget" --- > "entity": {"key": "self"}, > "target": {"key": "reactTarget"} 70,71c63,64 < "first": "direction", < "second": 0 --- > "first": {"key": "direction"}, > "second": {"value": 0} 79,80c72,73 < "name": "nosebleedright", < "duration": 0.2 --- > "duration": {"value": 0.2}, > "name": {"value": "nosebleedright"} 90,91c83,84 < "name": "nosebleedleft", < "duration": 0.2 --- > "duration": {"value": 0.2}, > "name": {"value": "nosebleedleft"} 101c94 < "time": 1 --- > "time": {"value": 1} behaviors\npc\reactions\pianoparty.behavior 17,18c17,18 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 26,31c26,31 < "goal": "reactTarget", < "goalType": "entity", < "groupId": "pianoparty", < "maxMembers": 99, < "minMembers": 1, < "position": "self" --- > "goal": {"value": "reactTarget"}, > "goalType": {"value": "entity"}, > "groupId": {"value": "pianoparty"}, > "maxMembers": {"value": 99}, > "minMembers": {"value": 1}, > "position": {"key": "self"} 45,46c45,46 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 54,57c54,57 < "groupId": "pianoparty", < "taskId": "pianist", < "minMembers": 1, < "maxMembers": 1 --- > "groupId": {"value": "pianoparty"}, > "maxMembers": {"value": 1}, > "minMembers": {"value": 1}, > "taskId": {"value": "pianist"} 71c71 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 82,87c82,87 < "avoidLiquid": true, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "position": "reactTargetPos", < "run": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "position": {"key": "reactTargetPos"}, > "run": {"value": false} 90d89 < "direction": "direction", 99c98 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 107c106 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 115,116c114,115 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 124c123 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 132,133c131,132 < "maxLoops": 15, < "untilSuccess": false --- > "maxLoops": {"value": 15}, > "untilSuccess": {"value": false} 146c145 < "emote": "blabbering" --- > "emote": {"value": "blabbering"} 154c153 < "dance": "typing" --- > "dance": {"value": "typing"} 162c161 < "time": 2 --- > "time": {"value": 2} 184,185c183,184 < "maxLoops": 5, < "untilSuccess": false --- > "maxLoops": {"value": 5}, > "untilSuccess": {"value": false} 198c197 < "emote": "happy" --- > "emote": {"value": "happy"} 218c217 < "dance": "posedance" --- > "dance": {"value": "posedance"} 226c225 < "time": 2 --- > "time": {"value": 2} 242c241 < "dance": "wiggledance" --- > "dance": {"value": "wiggledance"} 250c249 < "time": 2 --- > "time": {"value": 2} 266c265 < "dance": "armswingdance" --- > "dance": {"value": "armswingdance"} 274c273 < "time": 2 --- > "time": {"value": 2} 289c288 < } \ No newline at end of file --- > } behaviors\npc\reactions\playairhockey.behavior 8,10c8 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/position.lua", --- > "/scripts/actions/position.lua", 13,17c11 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua" --- > "/scripts/actions/npc.lua" 31c25 < "name": "startedAirHockey" --- > "name": {"value": "startedAirHockey"} 39,40c33,34 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 48,49c42,43 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 57,62c51,56 < "goal": "reactTarget", < "goalType": "entity", < "groupId": "playairhockey", < "maxMembers": 2, < "minMembers": 2, < "position": "self" --- > "goal": {"value": "reactTarget"}, > "goalType": {"value": "entity"}, > "groupId": {"value": "playairhockey"}, > "maxMembers": {"value": 2}, > "minMembers": {"value": 2}, > "position": {"key": "self"} 76c70 < "name": "startedAirHockey" --- > "name": {"value": "startedAirHockey"} 84c78 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 101,102c95,96 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 110,113c104,107 < "groupId": "playairhockey", < "taskId": "player1", < "minMembers": 1, < "maxMembers": 1 --- > "groupId": {"value": "playairhockey"}, > "maxMembers": {"value": 1}, > "minMembers": {"value": 1}, > "taskId": {"value": "player1"} 127,131c121,122 < "offset": [ < -1.5, < 0 < ], < "position": "reactTargetPos" --- > "offset": {"value": [-1.5, 0]}, > "position": {"key": "reactTargetPos"} 142c133 < "time": 1 --- > "time": {"value": 1} 154,155c145,146 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 163,166c154,157 < "groupId": "playairhockey", < "taskId": "player2", < "minMembers": 1, < "maxMembers": 1 --- > "groupId": {"value": "playairhockey"}, > "maxMembers": {"value": 1}, > "minMembers": {"value": 1}, > "taskId": {"value": "player2"} 180,184c171,172 < "offset": [ < 3, < 0 < ], < "position": "reactTargetPos" --- > "offset": {"value": [3, 0]}, > "position": {"key": "reactTargetPos"} 195c183 < "time": 1 --- > "time": {"value": 1} 209,215c197,202 < "avoidLiquid": true, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "position": "standPos", < "run": false, < "failFast": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "position": {"key": "standPos"}, > "run": {"value": false} 218d204 < "direction": "direction", 227c213 < "entity": "self" --- > "entity": {"key": "self"} 238,240c224,226 < "footPosition": false, < "position": "standPos", < "y": "selfY" --- > "footPosition": {"value": false}, > "position": {"key": "standPos"}, > "y": {"key": "selfY"} 248c234 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 256,257c242,243 < "maxLoops": 6, < "untilSuccess": false --- > "maxLoops": {"value": 6}, > "untilSuccess": {"value": false} 270c256 < "dance": "typing" --- > "dance": {"value": "typing"} 278c264 < "time": 2 --- > "time": {"value": 2} 295,298c281,284 < "groupId": "playairhockey", < "taskId": "winner", < "minMembers": 1, < "maxMembers": 1 --- > "groupId": {"value": "playairhockey"}, > "maxMembers": {"value": 1}, > "minMembers": {"value": 1}, > "taskId": {"value": "winner"} 306,309c292,295 < "groupId": "playairhockey", < "taskId": "loser", < "minMembers": 1, < "maxMembers": 1 --- > "groupId": {"value": "playairhockey"}, > "maxMembers": {"value": 1}, > "minMembers": {"value": 1}, > "taskId": {"value": "loser"} 329c315 < "time": 10 --- > "time": {"value": 10} 342c328 < "name": "startedAirHockey" --- > "name": {"key": "startedAirHockey"} 352c338 < } \ No newline at end of file --- > } behaviors\npc\reactions\pretendbeam.behavior 2a3 > "description": "", 4,8c5 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 24c21 < "dance": "punch" --- > "dance": {"value": "punch"} 32c29 < "time": 0.25 --- > "time": {"value": 0.25} 40c37 < "emote": "oooh" --- > "emote": {"value": "oooh"} 48c45 < "time": 0.5 --- > "time": {"value": 0.5} 56,59c53 < "velocity": [ < 0, < 15 < ] --- > "velocity": {"value": [0, 15]} 67c61 < "time": 0.5 --- > "time": {"value": 0.5} 89,90c83,84 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 98,99c92,93 < "direction": "direction", < "run": true --- > "direction": {"key": "direction"}, > "run": {"value": true} 107c101 < "time": 0.5 --- > "time": {"value": 0.5} 118c112 < "time": 0.5 --- > "time": {"value": 0.5} 126,129c120 < "velocity": [ < 0, < 15 < ] --- > "velocity": {"value": [0, 15]} 137c128 < "time": 0.5 --- > "time": {"value": 0.5} behaviors\npc\reactions\touchandexplode.behavior 5,9c5 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 12,14c8 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/projectiles.lua" --- > "/scripts/actions/projectiles.lua" 28c22 < "dance": "pressbutton" --- > "dance": {"value": "pressbutton"} 36c30 < "time": 0.3 --- > "time": {"value": 0.3} 56c50 < "entity": "reactTarget" --- > "entity": {"key": "reactTarget"} 67,78c61,68 < "position": "reactTargetPos", < "offset": [ < 0, < 0 < ], < "projectileType": "regularexplosionuniversal", < "angle": 0, < "sourceEntity": "reactTarget", < "trackSource": false, < "projectileConfig": {}, < "scalePower": true, < "power": 50 --- > "angle": {"value": 0}, > "offset": {"value": [0, 0]}, > "position": {"key": "reactTargetPos"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "regularexplosionuniversal"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "reactTarget"}, > "trackSource": {"value": false} 88,99c78,85 < "position": "self", < "offset": [ < 0, < 0 < ], < "projectileType": "regularexplosionuniversal", < "angle": 0, < "sourceEntity": "self", < "trackSource": false, < "projectileConfig": {}, < "scalePower": true, < "power": 50 --- > "angle": {"value": 0}, > "offset": {"value": [0, 0]}, > "position": {"key": "self"}, > "projectileConfig": {"value": {}}, > "projectileType": {"value": "regularexplosionuniversal"}, > "scalePower": {"value": true}, > "sourceEntity": {"key": "self"}, > "trackSource": {"value": false} behaviors\npc\reactions\touchfire.behavior 2a3 > "description": "", 5,9c6 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 24c21 < "time": 1 --- > "time": {"value": 1} 32c29 < "dance": "flipswitch" --- > "dance": {"value": "flipswitch"} 40c37 < "time": 0.25 --- > "time": {"value": 0.25} 48,51c45 < "velocity": [ < 0, < 15 < ] --- > "velocity": {"value": [0, 15]} 59c53 < "time": 0.5 --- > "time": {"value": 0.5} 67c61 < "emote": "annoyed" --- > "emote": {"value": "annoyed"} 75c69 < "time": 1 --- > "time": {"value": 1} behaviors\npc\reactions\vomit.behavior 6,11c6 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/movement.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 13,16c8,9 < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/math.lua", --- > "/scripts/actions/movement.lua", > "/scripts/actions/math.lua", 31,32c24,25 < "reactionVar": "reaction", < "reactionName": "vomit" --- > "reactionName": {"value": "vomit"}, > "reactionVar": {"value": "reaction"} 40c33 < "emote": "oooh" --- > "emote": {"value": "oooh"} 48c41 < "time": 1 --- > "time": {"value": 1} 56,57c49,50 < "entity": "self", < "target": "reactTarget" --- > "entity": {"key": "self"}, > "target": {"key": "reactTarget"} 60,61c53 < "direction": "direction", < "vector": "" --- > "direction": "direction" 81,82c73,74 < "first": "direction", < "second": 0 --- > "first": {"key": "direction"}, > "second": {"value": 0} 90,91c82,83 < "name": "vomitright", < "duration": 0.2 --- > "duration": {"value": 0.2}, > "name": {"value": "vomitright"} 101,102c93,94 < "name": "vomitleft", < "duration": 0.2 --- > "duration": {"value": 0.2}, > "name": {"value": "vomitleft"} 112c104 < "time": 1 --- > "time": {"value": 1} behaviors\npc\reactions\watchsleeping.behavior 5d4 < "/scripts/actions/world.lua", 6a6,7 > "/scripts/actions/world.lua", > "/scripts/behavior.lua", 8d8 < "/scripts/behavior.lua", 20,22c20,22 < "cooldown": 120, < "onFail": false, < "onSuccess": true --- > "cooldown": {"value": 120}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 28,33c28 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 40,42c35,37 < "cooldown": 5, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 5}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 49,53c44,48 < "position": "self", < "range": 30, < "orderBy": "nearest", < "orientation": "lay", < "unoccupied": false --- > "orderBy": {"value": "nearest"}, > "orientation": {"value": "lay"}, > "position": {"key": "self"}, > "range": {"value": 30}, > "unoccupied": {"value": false} 65,66c60,61 < "list": "beds", < "type": "entity" --- > "list": {"key": "beds"}, > "type": {"value": "entity"} 73c68 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 82c77 < "list": "beds" --- > "list": {"key": "beds"} 93c88 < "entity": "bed" --- > "entity": {"key": "bed"} 104,105c99,100 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 113c108 < "entity": "bed" --- > "entity": {"key": "bed"} 121c116 < "entity": "bed" --- > "entity": {"key": "bed"} 135,136c130,131 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 144,146c139,141 < "entity": "bed", < "range": 7, < "position": "self" --- > "entity": {"key": "bed"}, > "position": {"key": "self"}, > "range": {"value": 7} 154c149 < "entity": "bed" --- > "entity": {"key": "bed"} 162c157 < "entity": "bed" --- > "entity": {"key": "bed"} 170c165 < "time": "" --- > "time": {"value": ""} 180,181c175,176 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 189,198c184,190 < "avoidLiquid": true, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "position": "bedPosition", < "run": false, < "failFast": false, < "pathOptions": { < "returnBest": true < } --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "pathOptions": {"value": {"returnBest": true}}, > "position": {"key": "bedPosition"}, > "run": {"value": false} 201d192 < "direction": "direction", 204,211d194 < }, < { < "title": "faceDirection", < "type": "action", < "name": "faceDirection", < "parameters": { < "direction": "direction" < } 222c205 < } \ No newline at end of file --- > } behaviors\npc\reactions\wet.behavior 2a3 > "description": "", 5,9c6 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", --- > "/scripts/actions/npc.lua", 17,22c14 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 29c21 < "name": "wet" --- > "name": {"value": "wet"} 37c29 < "emote": "annoyed" --- > "emote": {"value": "annoyed"} 45c37 < "time": 2 --- > "time": {"value": 2} behaviors\npc\unique\castlearcher.behavior 12,15c12 < "parameters": { < "play": false, < "combatParameters": {} < }, --- > "parameters": {}, 20,25c17 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 32,36c24,25 < "offset": [ < 2, < -2 < ], < "position": "self" --- > "offset": {"value": [2, -2]}, > "position": {"key": "self"} 49,54c38 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 61c45 < "type": "missionStarted" --- > "type": {"value": "missionStarted"} 69,70c53,54 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 76,81c60 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 94,95c73,74 < "max": 40, < "min": 10 --- > "max": {"value": 40}, > "min": {"value": 10} 106,110c85,86 < "offset": [ < "xOffset", < 0 < ], < "position": "self" --- > "offset": {"value": ["xOffset", 0]}, > "position": {"key": "self"} 127,132c103,108 < "collisionCheck": false, < "fromPosition": "self", < "gravityMultiplier": 1, < "speed": 60, < "toPosition": "aimPosition", < "useHighArc": true --- > "collisionCheck": {"value": false}, > "fromPosition": {"key": "self"}, > "gravityMultiplier": {"value": 1}, > "speed": {"value": 60}, > "toPosition": {"key": "aimPosition"}, > "useHighArc": {"value": true} 143,148c119,124 < "collisionCheck": false, < "fromPosition": "self", < "gravityMultiplier": 1, < "speed": 60, < "toPosition": "aimPosition", < "useHighArc": false --- > "collisionCheck": {"value": false}, > "fromPosition": {"key": "self"}, > "gravityMultiplier": {"value": 1}, > "speed": {"value": 60}, > "toPosition": {"key": "aimPosition"}, > "useHighArc": {"value": false} 161,162c137,138 < "first": "aimVector", < "second": 10 --- > "first": {"key": "aimVector"}, > "second": {"value": [10, 10]} 173,174c149,150 < "offset": "aimOffset", < "position": "self" --- > "offset": {"key": "aimOffset"}, > "position": {"key": "self"} 182,183c158,159 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 197c173 < "time": 1.1 --- > "time": {"value": 1.1} 207c183 < "time": 0.2 --- > "time": {"value": 0.2} 215,219c191,192 < "offset": [ < 2, < -2 < ], < "position": "self" --- > "offset": {"value": [2, -2]}, > "position": {"key": "self"} 227c200 < "time": 1 --- > "time": {"value": 1} 245c218 < } \ No newline at end of file --- > } behaviors\npc\unique\cultistinvader.behavior 15,18c15 < "parameters": { < "play": false, < "combatParameters": {} < }, --- > "parameters": {}, 23,28c20 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 35c27 < "direction": -1 --- > "direction": {"value": -1} 43c35 < "time": 1 --- > "time": {"value": 1} 56,61c48 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 68c55 < "type": "missionEnded" --- > "type": {"value": "missionEnded"} 88c75 < "name": "beamoutanddie" --- > "name": {"value": "beamoutanddie"} 96c83 < "time": 1 --- > "time": {"value": 1} 107,112c94 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 119,121c101,103 < "cooldown": 1, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 1}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 128,132c110,113 < "orderBy": "nearest", < "position": "self", < "range": 20, < "type": "ballista", < "orderby": "nearest" --- > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 20}, > "type": {"value": "ballista"} 144,145c125,126 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 153c134 < "entity": "ballista" --- > "entity": {"key": "ballista"} 161,167c142,147 < "goal": "ballista", < "goalType": "entity", < "groupId": "followBallista", < "maxMembers": 1, < "minMembers": 1, < "parameters": {}, < "unique": true --- > "goal": {"value": "ballista"}, > "goalType": {"value": "entity"}, > "groupId": {"value": "followBallista"}, > "maxMembers": {"value": 1}, > "minMembers": {"value": 1}, > "unique": {"value": true} 186,191c166 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 203,205c178,180 < "entity": "ballista", < "range": 8, < "position": "self" --- > "entity": {"key": "ballista"}, > "position": {"key": "self"}, > "range": {"value": 8} 214c189 < "entity": "ballista" --- > "entity": {"key": "ballista"} 230,237c205,211 < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "pathOptions": {}, < "position": "ballistaPosition", < "run": true --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "pathOptions": {"value": {}}, > "position": {"key": "ballistaPosition"}, > "run": {"value": true} 247,252c221 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 259c228 < "uniqueId": "fireposition" --- > "uniqueId": {"value": "fireposition"} 270,271c239,240 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 279,281c248,250 < "entity": "fireStagehand", < "xRange": 2, < "position": "self" --- > "entity": {"key": "fireStagehand"}, > "position": {"key": "self"}, > "xRange": {"value": 2} 300,305c269 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 312c276 < "uniqueId": "ballistafireposition" --- > "uniqueId": {"value": "ballistafireposition"} 323,325c287,289 < "entity": "firePosition", < "xRange": 2, < "position": "self" --- > "entity": {"key": "firePosition"}, > "position": {"key": "self"}, > "xRange": {"value": 2} 341,342c305,306 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 350c314 < "name": "ballistapusher" --- > "name": {"value": "ballistapusher"} 358,359c322,323 < "direction": -1, < "run": false --- > "direction": {"value": -1}, > "run": {"value": false} 375,376c339,340 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 384c348 < "trackingRange": 100 --- > "trackingRange": {"value": 100} 391,393c355 < "parameters": { < "combatParameters": "" < } --- > "parameters": {} 401,406c363 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 413,414c370,371 < "default": false, < "path": "moveLeft" --- > "default": {"value": false}, > "path": {"value": "moveLeft"} 425c382 < "name": "moveLeft" --- > "name": {"key": "moveLeft"} 433,434c390,391 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 442,443c399,400 < "direction": -1, < "distance": 1.5 --- > "direction": {"value": -1}, > "distance": {"value": 1.5} 451,452c408,409 < "direction": -1, < "run": false --- > "direction": {"value": -1}, > "run": {"value": false} behaviors\npc\unique\esther.behavior 15,16c15,16 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 24,25c24,25 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 33c33 < "dance": "estherhover" --- > "dance": {"value": "estherhover"} 50a51 > "title": null, 60c61 < "play": "" --- > "play": {"value": ""} behaviors\npc\unique\tonauac.behavior 2a3 > "description": "", 5,8d5 < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", 24,25c21,22 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 38,43c35 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 45a38 > "title": null, 55,56c48,49 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 64c57 < "entity": "interactionSource" --- > "entity": {"key": "interactionSource"} 71,76c64 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 83,86c71,73 < "dialogType": "dialog.bless", < "entity": "interactionSource", < "tags": {}, < "static": false --- > "dialogType": {"value": "dialog.bless"}, > "entity": {"key": "interactionSource"}, > "tags": {"value": {}} 94,97c81,84 < "entity": "interactionSource", < "blessings": "", < "duration": "", < "rotation": "" --- > "blessings": {"key": ""}, > "duration": {"key": ""}, > "entity": {"key": "interactionSource"}, > "rotation": {"key": ""} 105,108c92 < "time": 1 < }, < "output": { < "ratio": "" --- > "time": {"value": 1} 117a102 > "title": null, behaviors\sequences\beamout.behavior 7,10d6 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", 32c28 < "fail": 1 --- > "fail": {"value": 1} 52c48 < "time": 15 --- > "time": {"value": 15} 62c58 < "time": 120 --- > "time": {"value": 120} 78c74 < "name": "beamout" --- > "name": {"value": "beamout"} 86c82 < "time": 0.75 --- > "time": {"value": 0.75} behaviors\sequences\sequentialdialog.behavior 3c3 < "description": "", --- > "description": null, 7,10d6 < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua", 17c13 < "dialogTarget": "" --- > "dialogTarget": null 23,28c19 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 35,36c26,27 < "dialogType": "", < "entity": "" --- > "dialogType": {"value": ""}, > "entity": {"key": ""} 44c35 < "tags": {} --- > "tags": {"value": {}} 52,53c43,44 < "maxLoops": -1, < "untilSuccess": true --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": true} 64,69c55 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 88c74 < "time": "" --- > "time": {"value": ""} 104c90 < "tags": {} --- > "tags": {"value": {}} 122c108 < "time": "" --- > "time": {"value": ""} behaviors\sequences\sequentialdialognoskip.behavior 2a3 > "description": "", 17,22c18 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 29,30c25,26 < "dialogType": "", < "entity": "" --- > "dialogType": {"value": ""}, > "entity": {"key": ""} 38c34 < "tags": {} --- > "tags": {"value": {}} 46,47c42,43 < "maxLoops": -1, < "untilSuccess": true --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": true} 58,63c54 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 70c61 < "time": "" --- > "time": {"value": ""} 84c75 < "tags": {} --- > "tags": {"value": {}} 102c93 < "time": "" --- > "time": {"value": ""} behaviors\sequences\apexmission\apexrebel.behavior 14,17c14 < "parameters": { < "play": false, < "combatParameters": {} < }, --- > "parameters": {}, 35,36c32,33 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 44,52c41,46 < "broadcastInterval": 2, < "hostileDamageTeam": { < "type": "friendly", < "team": 1 < }, < "losTime": 8, < "queryRange": 50, < "trackingRange": 100, < "attackOnSight": "attackOnSight" --- > "attackOnSight": {"key": "attackOnSight"}, > "broadcastInterval": {"value": 2}, > "hostileDamageTeam": {"value": {"type": "friendly", "team": 1}}, > "losTime": {"value": 8}, > "queryRange": {"value": 50}, > "trackingRange": {"value": 100} 62,67c56 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 74c63 < "name": "inCombat" --- > "name": {"value": "inCombat"} 93c82 < "chance": 0.75 --- > "chance": {"value": 0.75} 100,105c89 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 112,115c96,97 < "entity": "target", < "types": [ < "player" < ] --- > "entity": {"key": "target"}, > "types": {"value": ["player"]} 129,130c111,112 < "list": "seenplayers", < "entity": "target" --- > "entity": {"key": "target"}, > "list": {"key": "seenplayers"} 143,144c125,129 < "list": "seenplayers", < "entity": "target" --- > "entity": {"key": "target"}, > "list": {"key": "seenplayers"} > }, > "output" : { > "list" : "seenplayers" 155,157c140,142 < "dialogType": "dialog.reattack", < "entity": "target", < "tags": {} --- > "dialogType": {"value": "dialog.reattack"}, > "entity": {"key": "target"}, > "tags": {"value": {}} 167,169c152,154 < "dialogType": "dialog.attack", < "entity": "target", < "tags": {} --- > "dialogType": {"value": "dialog.attack"}, > "entity": {"key": "target"}, > "tags": {"value": {}} 179,181c164 < "parameters": { < "combatParameters": "" < } --- > "parameters": {} 208c191 < "name": "inCombat" --- > "name": {"key": "inCombat"} 216,221c199 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 228c206 < "name": "inCombat" --- > "name": {"value": "inCombat"} 242c220 < "chance": 0.75 --- > "chance": {"value": 0.75} 249,254c227 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 261c234 < "entity": "target" --- > "entity": {"key": "target"} 269,271c242,244 < "dialogType": "dialog.lostTarget", < "entity": "target", < "tags": {} --- > "dialogType": {"value": "dialog.lostTarget"}, > "entity": {"key": "target"}, > "tags": {"value": {}} 281,283c254,256 < "dialogType": "dialog.killedTarget", < "entity": "target", < "tags": {} --- > "dialogType": {"value": "dialog.killedTarget"}, > "entity": {"key": "target"}, > "tags": {"value": {}} 295a269 > "title": null, 304,309c278 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 316c285 < "uniqueId": "lanastart" --- > "uniqueId": {"value": "lanastart"} 332,337c301,303 < "cooldown": [ < 10, < 15 < ], < "onFail": false, < "onSuccess": true --- > "cooldown": {"value": [10, 15]}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 343,348c309 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 355,356c316,317 < "max": 15, < "min": 5 --- > "max": {"value": 15}, > "min": {"value": 5} 373c334 < "number": -1 --- > "number": {"value": -1} 384c345 < "number": 1 --- > "number": {"value": 1} 401,402c362,363 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 410c371 < "entity": "lana" --- > "entity": {"key": "lana"} 418c379 < "entity": "lana" --- > "entity": {"key": "lana"} 429,431c390,392 < "direction": "direction", < "multiplier": "distance", < "position": "lana" --- > "direction": {"key": "direction"}, > "multiplier": {"key": "distance"}, > "position": {"key": "lana"} 447,449c408,410 < "position": "self", < "target": "targetPos", < "range": 4 --- > "position": {"key": "self"}, > "range": {"value": 4}, > "target": {"key": "targetPos"} 464,471c425,427 < "position": "self", < "offset": [ < 10, < 0 < ], < "collisionType": [ < "Dynamic" < ] --- > "collisionType": {"value": ["Dynamic"]}, > "offset": {"value": [10, 0]}, > "position": {"key": "self"} 479,486c435,441 < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "pathOptions": {}, < "position": "targetPos", < "run": true --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "pathOptions": {"value": {}}, > "position": {"key": "targetPos"}, > "run": {"value": true} 489d443 < "direction": "movingDirection", 513c467 < } \ No newline at end of file --- > } behaviors\sequences\apexmission\lanaend.behavior 19,24c19 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 37c32 < "type": "playerArrived" --- > "type": {"value": "playerArrived"} 58,59c53,54 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 72,73c67,68 < "direction": 1, < "distance": 3 --- > "direction": {"value": 1}, > "distance": {"value": 3} 82,83c77,78 < "direction": 1, < "run": true --- > "direction": {"value": 1}, > "run": {"value": true} 96,99c91,94 < "position": "self", < "range": 3, < "orderBy": "nearest", < "name": "apexartifactaltar" --- > "name": {"value": "apexartifactaltar"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 3} 114,115c109,110 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 128,129c123,124 < "direction": 1, < "run": false --- > "direction": {"value": 1}, > "run": {"value": false} 143c138 < "time": 0.5 --- > "time": {"value": 0.5} 154c149 < "direction": -1 --- > "direction": {"value": -1} 168,174c163,167 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 10, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 10}, > "withoutEntity": {"key": "self"} 193,194c186,187 < "entity": "self", < "target": "player" --- > "entity": {"key": "self"}, > "target": {"key": "player"} 205c198 < "direction": "direction" --- > "direction": {"key": "direction"} 213,216c206,209 < "dialogWaitTime": 4, < "dialogEndWait": 2, < "dialogKey": "dialog.lana.end", < "dialogTarget": "player" --- > "dialogWaitTime": {"value": 4}, > "dialogEndWait": {"value": 2}, > "dialogKey": {"value": "dialog.lana.end"}, > "dialogTarget": {"key": "player"} 230,232c223,225 < "cooldown": 1, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 1}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 239,240c232,233 < "entity": "altar", < "message": "setInteractive" --- > "entity": {"key": "altar"}, > "message": {"value": "setInteractive"} 263c256 < "type": "artifactTaken" --- > "type": {"value": "artifactTaken"} 279c272 < "time": 1 --- > "time": {"value": 1} 287,290c280,283 < "position": "self", < "range": 30, < "orderBy": "nearest", < "name": "arkteleporter" --- > "name": {"value": "arkteleporter"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 30} 301c294 < "entity": "arkteleporter" --- > "entity": {"key": "arkteleporter"} 312,313c305,306 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 326,333c319,325 < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "pathOptions": {}, < "position": "arkteleporter", < "run": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "pathOptions": {"value": {}}, > "position": {"key": "arkteleporter"}, > "run": {"value": false} 336d327 < "direction": "direction", 351,353c342,344 < "direction": "direction", < "distance": 3, < "openLocked": true --- > "direction": {"key": "facingDirection"}, > "distance": {"value": 3}, > "openLocked": {"value": true} 364c355 < "direction": "direction" --- > "direction": {"key": "facingDirection"} 375c366 < "direction": "back" --- > "direction": {"key": "back"} 389,395c380,384 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 10, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 10}, > "withoutEntity": {"key": "self"} 414,416c403,405 < "dialogType": "dialog.lana.teleporter", < "entity": "player", < "tags": {} --- > "dialogType": {"value": "dialog.lana.teleporter"}, > "entity": {"key": "player"}, > "tags": {"value": {}} 424c413 < "time": 3 --- > "time": {"value": 3} 431,436c420 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 452,453c436,437 < "list": "players", < "type": "entity" --- > "list": {"key": "players"}, > "type": {"value": "entity"} 465,470c449,451 < "entity": "eachItem", < "message": "playCinematic", < "arguments": [ < "/cinematics/story/lanaatoutpost.cinematic", < true < ] --- > "arguments": {"value": ["/cinematics/story/lanaatoutpost.cinematic", true]}, > "entity": {"key": "eachItem"}, > "message": {"value": "playCinematic"} 488c469 < "name": "beamoutanddie" --- > "name": {"value": "beamoutanddie"} 499c480 < } \ No newline at end of file --- > } behaviors\sequences\apexmission\lanastart.behavior 5d4 < "/scripts/actions/world.lua", 7,12c6 < "/scripts/actions/entity.lua", < "/scripts/actions/movement.lua", < "/scripts/actions/time.lua", < "/scripts/behavior.lua", < "/scripts/actions/sensor.lua", < "/scripts/actions/entity.lua", --- > "/scripts/actions/movement.lua", 14c8 < "/scripts/actions/query.lua", --- > "/scripts/actions/time.lua", 16c10,11 < "/scripts/actions/npc.lua" --- > "/scripts/behavior.lua", > "/scripts/actions/sensor.lua" 23,28c18 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 41,47c31,35 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 20, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 20}, > "withoutEntity": {"key": "self"} 58,59c46,47 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 67c55 < "direction": -1 --- > "direction": {"value": -1} 85,86c73,74 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 94c82 < "entity": "player" --- > "entity": {"key": "player"} 101,106c89 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 113,116c96,99 < "dialogWaitTime": 4, < "dialogEndWait": 2, < "dialogKey": "dialog.lana.start", < "dialogTarget": "player" --- > "dialogWaitTime": {"value": 4}, > "dialogEndWait": {"value": 2}, > "dialogKey": {"value": "dialog.lana.start"}, > "dialogTarget": {"key": "player"} 124c107 < "direction": 1 --- > "direction": {"value": 1} 132,135c115,118 < "position": "self", < "range": 5, < "orderBy": "nearest", < "name": "smallwallbutton" --- > "name": {"value": "smallwallbutton"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 5} 146c129 < "entity": "button" --- > "entity": {"key": "button"} 160,161c143,144 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 169,170c152,153 < "direction": 1, < "run": true --- > "direction": {"value": 1}, > "run": {"value": true} 178c161 < "time": 1 --- > "time": {"value": 1} 188,189c171,172 < "maxLoops": -1, < "untilSuccess": true --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": true} 200,205c183 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 212,213c190,191 < "maxLoops": -1, < "untilSuccess": true --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": true} 226,227c204,205 < "fail": 1, < "success": 99 --- > "fail": {"value": 1}, > "success": {"value": 99} 241c219 < "entity": "target" --- > "entity": {"key": "target"} 248,253c226 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 260,267c233,237 < "entityTypes": [ < "monster", < "npc" < ], < "orderBy": "nearest", < "position": "self", < "range": 40, < "withoutEntity": "self" --- > "entityTypes": {"value": ["monster", "npc"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 40}, > "withoutEntity": {"key": "self"} 278,279c248,249 < "list": "targets", < "type": "entity" --- > "list": {"key": "targets"}, > "type": {"value": "entity"} 285,290c255 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 297c262 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 305c270 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 316c281 < "list": "targets" --- > "list": {"key": "targets"} 318a284 > "list" : "targets", 336,337c302,303 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 361,366c327 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 378,379c339,340 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 392,395c353,356 < "position": "self", < "range": 2, < "orderBy": "nearest", < "name": "largecastledoor" --- > "name": {"value": "largecastledoor"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 2} 407,408c368,369 < "direction": 1, < "run": true --- > "direction": {"value": 1}, > "run": {"value": true} 419c380 < "direction": -1 --- > "direction": {"value": -1} 439c400 < "entity": "castledoor" --- > "entity": {"key": "castledoor"} 452,461c413,415 < "position": "self", < "offset": [ < 4, < 0 < ], < "collisionType": [ < "Null", < "Block", < "Dynamic" < ] --- > "collisionType": {"value": ["Null", "Block", "Dynamic"]}, > "offset": {"value": [4, 0]}, > "position": {"key": "self"} 490c444 < "entity": "castledoor" --- > "entity": {"key": "castledoor"} 505,512c459,462 < "position": "self", < "range": 5, < "orderBy": "nearest", < "name": "apexcooldoor" < }, < "output": { < "entity": "", < "list": "" --- > "name": {"value": "apexcooldoor"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 5} 520,527c470,473 < "position": "self", < "range": 5, < "orderBy": "nearest", < "name": "electricdoor" < }, < "output": { < "entity": "", < "list": "" --- > "name": {"value": "electricdoor"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 5} 546,551c492 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 558,564c499,503 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 20, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 20}, > "withoutEntity": {"key": "self"} 576,578c515,517 < "entity": "player", < "yRange": 3, < "position": "self" --- > "entity": {"key": "player"}, > "position": {"key": "self"}, > "yRange": {"value": 3} 596c535 < "direction": 1 --- > "direction": {"value": 1} 604,607c543,546 < "position": "self", < "range": 5, < "orderBy": "nearest", < "name": "largecastledoor" --- > "name": {"value": "largecastledoor"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 5} 623,624c562,563 < "entity": "castledoor", < "func": "openDoor" --- > "entity": {"key": "castledoor"}, > "func": {"value": "openDoor"} 633,634c572,573 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 642,643c581,582 < "direction": 1, < "run": false --- > "direction": {"value": 1}, > "run": {"value": false} 651c590 < "time": 0.5 --- > "time": {"value": 0.5} 661,662c600,601 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 675,680c614 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 693,696c627,630 < "dialogWaitTime": 4, < "dialogEndWait": 2, < "dialogKey": "dialog.lana.mid", < "dialogTarget": "player" --- > "dialogWaitTime": {"value": 4}, > "dialogEndWait": {"value": 2}, > "dialogKey": {"value": "dialog.lana.mid"}, > "dialogTarget": {"key": "player"} 704,705c638,639 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 712,717c646 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 730,731c659,660 < "entity": "self", < "target": "interactionSource" --- > "entity": {"key": "self"}, > "target": {"key": "interactionSource"} 742c671 < "direction": "direction" --- > "direction": {"key": "direction"} 750,753c679,682 < "dialogWaitTime": 4, < "dialogEndWait": 2, < "dialogKey": "dialog.lana.mid", < "dialogTarget": "interactionSource" --- > "dialogWaitTime": {"value": 4}, > "dialogEndWait": {"value": 2}, > "dialogKey": {"value": "dialog.lana.mid"}, > "dialogTarget": {"key": "interactionSource"} 776c705 < } \ No newline at end of file --- > } behaviors\sequences\avianmission\tonauacdoor.behavior 7a8 > "/scripts/actions/movement.lua", 9d9 < "/scripts/actions/movement.lua", 12,16c12 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua" --- > "/scripts/actions/npc.lua" 18,21c14 < "parameters": { < "dialogWaitTime": 4, < "dialogEndWait": 2 < }, --- > "parameters": {}, 26,31c19 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 38,42c26,27 < "offset": [ < 32, < -32 < ], < "position": "self" --- > "offset": {"value": [32, -32]}, > "position": {"key": "self"} 53,55c38,40 < "cooldown": 1, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 1}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 67c52 < "uniqueId": "kluextotem" --- > "uniqueId": {"value": "kluextotem"} 81,86c66 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 93,96c73,76 < "position": "self", < "range": 10, < "orderBy": "nearest", < "name": "bardoor2sideways" --- > "name": {"value": "bardoor2sideways"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 10} 112,113c92,93 < "entity": "hatch", < "func": "openDoor" --- > "entity": {"key": "hatch"}, > "func": {"value": "openDoor"} 136,141c116 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 148,154c123,127 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 20, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 20}, > "withoutEntity": {"key": "self"} 165,166c138,139 < "list": "players", < "type": "entity" --- > "list": {"key": "players"}, > "type": {"value": "entity"} 173c146 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 182c155 < "list": "players" --- > "list": {"key": "players"} 203,204c176,177 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 212c185 < "entity": "player" --- > "entity": {"key": "player"} 219,224c192 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 231c199 < "entity": "player" --- > "entity": {"key": "player"} 239c207 < "time": 0.5 --- > "time": {"value": 0.5} 247,250c215,218 < "dialogWaitTime": 4, < "dialogEndWait": 4, < "dialogKey": "dialog.tonauac.doorGreeting", < "dialogTarget": "" --- > "dialogWaitTime": {"value": 4}, > "dialogEndWait": {"value": 4}, > "dialogKey": {"value": "dialog.tonauac.doorGreeting"}, > "dialogTarget": {"key": ""} 263,264c231,232 < "direction": -1, < "run": false --- > "direction": {"value": -1}, > "run": {"value": false} 273c241 < "direction": -1 --- > "direction": {"value": -1} 281,284c249 < "time": 0.5 < }, < "output": { < "ratio": "" --- > "time": {"value": 0.5} 292c257 < "dance": "tonauacdoorlifting" --- > "dance": {"value": "tonauacdoorlifting"} 300,303c265 < "time": 0.5 < }, < "output": { < "ratio": "" --- > "time": {"value": 0.5} 310,315c272 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 322,325c279,282 < "position": "self", < "range": 10, < "orderBy": "nearest", < "name": "plantdoor2" --- > "name": {"value": "plantdoor2"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 10} 336c293 < "direction": -1 --- > "direction": {"value": -1} 344c301 < "dance": "tonauacdoorlifting" --- > "dance": {"value": "tonauacdoorlifting"} 357,358c314,315 < "entity": "door", < "func": "openDoor" --- > "entity": {"key": "door"}, > "func": {"value": "openDoor"} 369,372c326 < "time": 0.5 < }, < "output": { < "ratio": "" --- > "time": {"value": 0.5} 380c334 < "entity": "player" --- > "entity": {"key": "player"} 388,391c342 < "time": 0.5 < }, < "output": { < "ratio": "" --- > "time": {"value": 0.5} 399,402c350,353 < "dialogWaitTime": 4, < "dialogEndWait": 4, < "dialogKey": "dialog.tonauac.doorOpened", < "dialogTarget": "" --- > "dialogWaitTime": {"value": 4}, > "dialogEndWait": {"value": 4}, > "dialogKey": {"value": "dialog.tonauac.doorOpened"}, > "dialogTarget": {"key": ""} 405a357 > "title": null, 416c368 < } \ No newline at end of file --- > } behaviors\sequences\avianmission\tonauacend.behavior 16,19c16 < "parameters": { < "dialogWaitTime": 4, < "dialogEndWait": 2 < }, --- > "parameters": {}, 24,29c21 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 35,40c27 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 47,53c34,38 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 20, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 20}, > "withoutEntity": {"key": "self"} 64,65c49,50 < "list": "players", < "type": "entity" --- > "list": {"key": "players"}, > "type": {"value": "entity"} 72c57 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 81c66 < "list": "players" --- > "list": {"key": "players"} 94c79 < "entity": "player" --- > "entity": {"key": "player"} 102c87 < "time": 0.5 --- > "time": {"value": 0.5} 110,113c95,98 < "dialogWaitTime": 4, < "dialogEndWait": 2, < "dialogKey": "dialog.tonauac.giveRelic", < "dialogTarget": "" --- > "dialogWaitTime": {"value": 4}, > "dialogEndWait": {"value": 2}, > "dialogKey": {"value": "dialog.tonauac.giveRelic"}, > "dialogTarget": {"key": ""} 127,129c112,114 < "cooldown": 1, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 1}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 135,140c120 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 147,150c127,130 < "position": "self", < "range": 20, < "orderBy": "nearest", < "name": "avianartifactaltar" --- > "name": {"value": "avianartifactaltar"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 20} 161,162c141,142 < "entity": "altar", < "message": "setInteractive" --- > "entity": {"key": "altar"}, > "message": {"value": "setInteractive"} 181c161 < "time": 0.5 --- > "time": {"value": 0.5} 195c175 < "type": "artifactTaken" --- > "type": {"value": "artifactTaken"} 216,217c196,197 < "direction": 1, < "run": false --- > "direction": {"value": 1}, > "run": {"value": false} 225,230c205 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 237,240c212,215 < "position": "self", < "range": 20, < "orderBy": "nearest", < "name": "bardoor3" --- > "name": {"value": "bardoor3"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 20} 256,257c231,232 < "entity": "bardoor", < "func": "openDoor" --- > "entity": {"key": "bardoor"}, > "func": {"value": "openDoor"} 268c243 < "time": 0.5 --- > "time": {"value": 0.5} 276,277c251,252 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 285,286c260,261 < "direction": 1, < "run": false --- > "direction": {"value": 1}, > "run": {"value": false} 294,296c269,271 < "cooldown": 0.5, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 0.5}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 303,306c278,281 < "position": "self", < "range": 15, < "orderBy": "nearest", < "name": "arkteleporter" --- > "name": {"value": "arkteleporter"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 15} 319,324c294 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 331c301 < "entity": "teleporter" --- > "entity": {"key": "teleporter"} 342,346c312,313 < "offset": [ < 0, < 0 < ], < "position": "teleporter" --- > "offset": {"value": [0, 0]}, > "position": {"key": "teleporter"} 357,363c324,329 < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "position": "teleporter", < "run": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "position": {"key": "teleporter"}, > "run": {"value": false} 379,381c345,347 < "cooldown": 0.5, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 0.5}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 388,394c354,358 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 10, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 10}, > "withoutEntity": {"key": "self"} 411,414c375,378 < "dialogWaitTime": 2, < "dialogEndWait": 1, < "dialogKey": "dialog.tonauac.end", < "dialogTarget": "" --- > "dialogWaitTime": {"value": 2}, > "dialogEndWait": {"value": 1}, > "dialogKey": {"value": "dialog.tonauac.end"}, > "dialogTarget": {"key": ""} 421,426c385 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 442,443c401,402 < "list": "players", < "type": "entity" --- > "list": {"key": "players"}, > "type": {"value": "entity"} 455,460c414,416 < "entity": "eachItem", < "message": "playCinematic", < "arguments": [ < "/cinematics/story/tonauacatoutpost.cinematic", < true < ] --- > "arguments": {"value": ["/cinematics/story/tonauacatoutpost.cinematic", true]}, > "entity": {"key": "eachItem"}, > "message": {"value": "playCinematic"} 472c428 < "name": "beamoutanddie" --- > "name": {"value": "beamoutanddie"} 489c445 < } \ No newline at end of file --- > } behaviors\sequences\avianmission\tonauacstart.behavior 15,18c15 < "parameters": { < "dialogWaitTime": 4, < "dialogEndWait": 2 < }, --- > "parameters": {}, 23,28c20 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 40,45c32 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 52,58c39,43 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 20, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 20}, > "withoutEntity": {"key": "self"} 69,70c54,55 < "list": "players", < "type": "entity" --- > "list": {"key": "players"}, > "type": {"value": "entity"} 77c62 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 86c71 < "list": "players" --- > "list": {"key": "players"} 99,100c84,85 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 113,118c98 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 125,126c105,106 < "name": "bored", < "duration": 5 --- > "duration": {"value": 5}, > "name": {"value": "bored"} 134c114 < "time": 5 --- > "time": {"value": 5} 154c134 < "name": "bored" --- > "name": {"value": "bored"} 162,165c142 < "velocity": [ < 0, < 15 < ] --- > "velocity": {"value": [0, 15]} 173,176c150,153 < "dialogWaitTime": 4, < "dialogEndWait": 2, < "dialogKey": "dialog.tonauac.start", < "dialogTarget": "" --- > "dialogWaitTime": {"value": 4}, > "dialogEndWait": {"value": 2}, > "dialogKey": {"value": "dialog.tonauac.start"}, > "dialogTarget": {"key": ""} 195,196c172,173 < "direction": 1, < "run": false --- > "direction": {"value": 1}, > "run": {"value": false} 212,217c189 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 224,227c196,199 < "position": "self", < "range": 10, < "orderBy": "nearest", < "name": "bardoor3" --- > "name": {"value": "bardoor3"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 10} 243,244c215,216 < "entity": "bardoor", < "func": "openDoor" --- > "entity": {"key": "bardoor"}, > "func": {"value": "openDoor"} 255,256c227,228 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 264,265c236,237 < "direction": 1, < "run": false --- > "direction": {"value": 1}, > "run": {"value": false} 272,277c244 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 284,287c251,254 < "dialogWaitTime": 4, < "dialogEndWait": 2, < "dialogKey": "dialog.tonauac.continue", < "dialogTarget": "" --- > "dialogWaitTime": {"value": 4}, > "dialogEndWait": {"value": 2}, > "dialogKey": {"value": "dialog.tonauac.continue"}, > "dialogTarget": {"key": ""} 303,305c270,272 < "cooldown": 0.5, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 0.5}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 312,315c279,282 < "position": "self", < "range": 20, < "orderBy": "nearest", < "name": "mask6" --- > "name": {"value": "mask6"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 20} 328,333c295 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 340c302 < "entity": "mask" --- > "entity": {"key": "mask"} 351,355c313,314 < "offset": [ < -5, < 0 < ], < "position": "maskPosition" --- > "offset": {"value": [-5, 0]}, > "position": {"key": "maskPosition"} 366,372c325,330 < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "position": "maskPosition", < "run": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "position": {"key": "maskPosition"}, > "run": {"value": false} 380,383c338,341 < "dialogWaitTime": 4, < "dialogEndWait": 2, < "dialogKey": "dialog.tonauac.maskDescription", < "dialogTarget": "" --- > "dialogWaitTime": {"value": 4}, > "dialogEndWait": {"value": 2}, > "dialogKey": {"value": "dialog.tonauac.maskDescription"}, > "dialogTarget": {"key": ""} 393,394c351,352 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 402,403c360,361 < "direction": 1, < "run": false --- > "direction": {"value": 1}, > "run": {"value": false} 411,413c369,371 < "cooldown": 0.5, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 0.5}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 420,423c378,381 < "position": "self", < "range": 20, < "orderBy": "nearest", < "name": "sacrificialaltar" --- > "name": {"value": "sacrificialaltar"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 20} 436,441c394 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 448c401 < "entity": "altar" --- > "entity": {"key": "altar"} 459,463c412,413 < "offset": [ < -5, < 0 < ], < "position": "altarPosition" --- > "offset": {"value": [-5, 0]}, > "position": {"key": "altarPosition"} 474,480c424,429 < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "position": "altarPosition", < "run": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "position": {"key": "altarPosition"}, > "run": {"value": false} 483d431 < "direction": "direction", 492,495c440,443 < "dialogWaitTime": 4, < "dialogEndWait": 2, < "dialogKey": "dialog.tonauac.altarDescription", < "dialogTarget": "" --- > "dialogWaitTime": {"value": 4}, > "dialogEndWait": {"value": 2}, > "dialogKey": {"value": "dialog.tonauac.altarDescription"}, > "dialogTarget": {"key": ""} 505,506c453,454 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 514,515c462,463 < "direction": 1, < "run": false --- > "direction": {"value": 1}, > "run": {"value": false} 523,525c471,473 < "cooldown": 0.5, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 0.5}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 532,535c480,483 < "position": "self", < "range": 40, < "orderBy": "nearest", < "name": "tombstatueavian" --- > "name": {"value": "tombstatueavian"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 40} 548,553c496 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 560c503 < "entity": "statue" --- > "entity": {"key": "statue"} 571,575c514,515 < "offset": [ < 4, < 0 < ], < "position": "statuePosition" --- > "offset": {"value": [4, 0]}, > "position": {"key": "statuePosition"} 586,592c526,531 < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "position": "statuePosition", < "run": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "position": {"key": "statuePosition"}, > "run": {"value": false} 600c539 < "direction": -1 --- > "direction": {"value": -1} 608,611c547,550 < "dialogWaitTime": 4, < "dialogEndWait": 2, < "dialogKey": "dialog.tonauac.statueDescription", < "dialogTarget": "" --- > "dialogWaitTime": {"value": 4}, > "dialogEndWait": {"value": 2}, > "dialogKey": {"value": "dialog.tonauac.statueDescription"}, > "dialogTarget": {"key": ""} 621c560 < "time": 3 --- > "time": {"value": 3} 629,632c568,571 < "dialogWaitTime": 4, < "dialogEndWait": 2, < "dialogKey": "dialog.tonauac.endTour", < "dialogTarget": "" --- > "dialogWaitTime": {"value": 4}, > "dialogEndWait": {"value": 2}, > "dialogKey": {"value": "dialog.tonauac.endTour"}, > "dialogTarget": {"key": ""} 640,641c579,580 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 649,650c588,589 < "direction": 1, < "run": false --- > "direction": {"value": 1}, > "run": {"value": false} 658,660c597,599 < "cooldown": 0.5, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 0.5}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 667,670c606,609 < "position": "self", < "range": 20, < "orderBy": "nearest", < "name": "bardoor2" --- > "name": {"value": "bardoor2"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 20} 683,688c622 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 695c629 < "entity": "bardoor" --- > "entity": {"key": "bardoor"} 706,710c640,641 < "offset": [ < -1, < 0 < ], < "position": "bardoorPosition" --- > "offset": {"value": [-1, 0]}, > "position": {"key": "bardoorPosition"} 721,727c652,657 < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "position": "bardoorPosition", < "run": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "position": {"key": "bardoorPosition"}, > "run": {"value": false} 735c665 < "direction": 1 --- > "direction": {"value": 1} 744,749c674 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 756,759c681,684 < "position": "self", < "range": 10, < "orderBy": "nearest", < "name": "bardoor2" --- > "name": {"value": "bardoor2"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 10} 770c695 < "dance": "tonauacdoorlifting" --- > "dance": {"value": "tonauacdoorlifting"} 778c703 < "time": 0.5 --- > "time": {"value": 0.5} 791,792c716,717 < "entity": "bardoor", < "func": "openDoor" --- > "entity": {"key": "bardoor"}, > "func": {"value": "openDoor"} 803c728 < "time": 1 --- > "time": {"value": 1} 811,814c736,739 < "dialogWaitTime": 4, < "dialogEndWait": 2, < "dialogKey": "dialog.tonauac.feelingTired", < "dialogTarget": "" --- > "dialogWaitTime": {"value": 4}, > "dialogEndWait": {"value": 2}, > "dialogKey": {"value": "dialog.tonauac.feelingTired"}, > "dialogTarget": {"key": ""} 822c747 < "time": 5 --- > "time": {"value": 5} 830,831c755,756 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 840a766 > "title": null, 850,851c776,777 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 857,862c783 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 869,870c790,791 < "name": "bored", < "duration": 5 --- > "duration": {"value": 5}, > "name": {"value": "bored"} 878c799 < "time": 5 --- > "time": {"value": 5} 888c809 < } \ No newline at end of file --- > } behaviors\sequences\floranmission\chieftain.behavior 31c31 < "type": "nuruarrived" --- > "type": {"value": "nuruarrived"} 59c59 < "uniqueId": "floranartifactaltar" --- > "uniqueId": {"value": "floranartifactaltar"} 70c70 < "entity": "altar" --- > "entity": {"key": "altar"} 81,85c81,82 < "offset": [ < 6, < 2 < ], < "position": "altarPosition" --- > "offset": {"value": [6, 2]}, > "position": {"key": "altarPosition"} 96,99c93,96 < "groundPosition": true, < "maxGround": 2, < "minGround": -2, < "position": "altarPosition" --- > "groundPosition": {"value": true}, > "maxGround": {"value": 2}, > "minGround": {"value": -2}, > "position": {"key": "altarPosition"} 123,125c120,122 < "cooldown": 0.5, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 0.5}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 132,138c129,133 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 20, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 20}, > "withoutEntity": {"key": "self"} 155c150 < "time": 1 --- > "time": {"value": 1} 163,164c158,159 < "content": "Ssssacred hunt is over. Sssacred bone is yours. Championsss.", < "tags": {} --- > "content": {"value": "Ssssacred hunt is over. Sssacred bone is yours. Championsss."}, > "tags": {"value": {}} 172,177c167,170 < "position": "self", < "range": 50, < "entityTypes": [ < "npc" < ], < "type": "chieftainspoke" --- > "entityTypes": {"value": ["npc"]}, > "position": {"key": "self"}, > "range": {"value": 50}, > "type": {"value": "chieftainspoke"} behaviors\sequences\floranmission\floranmissionstart.behavior 6d5 < "/scripts/actions/world.lua", 8,9c7,8 < "/scripts/actions/entity.lua", < "/scripts/actions/position.lua", --- > "/scripts/actions/position.lua", > "/scripts/actions/world.lua", 25c24 < "limit": 1 --- > "limit": {"value": 1} 38c37 < "fail": 1 --- > "fail": {"value": 1} 52c51 < "entity": "player" --- > "entity": {"key": "player"} 60c59 < "cooldown": 0.5 --- > "cooldown": {"value": 0.5} 67,70c66,67 < "entityTypes": [ < "player" < ], < "range": 10 --- > "entityTypes": {"value": ["player"]}, > "range": {"value": 10} 84,87c81,84 < "dialogWaitTime": 8, < "dialogEndWait": 2, < "dialogKey": "dialog.floranmissionstart.introduction", < "dialogTarget": "player" --- > "dialogWaitTime": {"value": 8}, > "dialogEndWait": {"value": 2}, > "dialogKey": {"value": "dialog.floranmissionstart.introduction"}, > "dialogTarget": {"key": "player"} 103c100 < "direction": 1 --- > "direction": {"value": 1} 117,121c114,115 < "offset": [ < 0, < -25 < ], < "position": "self" --- > "offset": {"value": [0, -25]}, > "position": {"key": "self"} 132,134c126,128 < "position": "switchposition", < "range": 10, < "name": "medievalswitchlever" --- > "name": {"value": "medievalswitchlever"}, > "position": {"key": "switchposition"}, > "range": {"value": 10} 145c139 < "entity": "switch" --- > "entity": {"key": "switch"} 157c151 < "name": "beamout" --- > "name": {"value": "beamout"} 168a163 > "title": null, 179c174 < "limit": 1 --- > "limit": {"value": 1} 192c187 < "name": "beamout" --- > "name": {"key": "beamout"} 200c195 < "fail": 1 --- > "fail": {"value": 1} 214c209 < "entity": "player" --- > "entity": {"key": "player"} 222c217 < "cooldown": 0.5 --- > "cooldown": {"value": 0.5} 229,236c224,225 < "entityTypes": [ < "player" < ], < "range": 10 < }, < "output": { < "entity": "", < "list": "" --- > "entityTypes": {"value": ["player"]}, > "range": {"value": 10} 247,248c236,237 < "entity": "self", < "target": "player" --- > "entity": {"key": "self"}, > "target": {"key": "player"} 259,260c248,249 < "first": "direction", < "second": 0 --- > "first": {"key": "direction"}, > "second": {"value": 0} 273,277c262,266 < "entity": "player", < "range": 3, < "xRange": "", < "yRange": "", < "position": "self" --- > "entity": {"key": "player"}, > "position": {"key": "self"}, > "range": {"value": 3}, > "xRange": {"key": ""}, > "yRange": {"key": ""} 286,289c275,278 < "dialogWaitTime": 8, < "dialogEndWait": 2, < "dialogKey": "dialog.floranmissionstart.end", < "dialogTarget": "player" --- > "dialogWaitTime": {"value": 8}, > "dialogEndWait": {"value": 2}, > "dialogKey": {"value": "dialog.floranmissionstart.end"}, > "dialogTarget": {"key": "player"} 308c297 < "name": "beamout" --- > "name": {"key": "beamout"} 311a301 > "title": null, behaviors\sequences\floranmission\floranmissionswitch.behavior 6d5 < "/scripts/actions/world.lua", 8c7 < "/scripts/actions/entity.lua", --- > "/scripts/actions/world.lua", 10,11c9,10 < "/scripts/actions/status.lua", < "/scripts/actions/movement.lua" --- > "/scripts/actions/movement.lua", > "/scripts/actions/status.lua" 31c30 < "cooldown": 0.5 --- > "cooldown": {"value": 0.5} 37,42c36 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 49,53c43,44 < "offset": [ < -10, < -13 < ], < "position": "spawn" --- > "offset": {"value": [-10, -13]}, > "position": {"key": "spawn"} 64,68c55,57 < "entityTypes": [ < "player" < ], < "position": "firstplayer", < "range": 8 --- > "entityTypes": {"value": ["player"]}, > "position": {"key": "firstplayer"}, > "range": {"value": 8} 90,93c79,82 < "dialogWaitTime": 4, < "dialogEndWait": 1, < "dialogKey": "dialog.floranmissionswitch.hello", < "dialogTarget": "player" --- > "dialogWaitTime": {"value": 4}, > "dialogEndWait": {"value": 1}, > "dialogKey": {"value": "dialog.floranmissionswitch.hello"}, > "dialogTarget": {"key": "player"} 107c96 < "cooldown": 0.5 --- > "cooldown": {"value": 0.5} 113,118c102 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 125,129c109,110 < "offset": [ < -10, < 3 < ], < "position": "spawn" --- > "offset": {"value": [-10, 3]}, > "position": {"key": "spawn"} 140,144c121,123 < "entityTypes": [ < "player" < ], < "position": "secondplayer", < "range": 4 --- > "entityTypes": {"value": ["player"]}, > "position": {"key": "secondplayer"}, > "range": {"value": 4} 166,169c145,148 < "dialogWaitTime": 4, < "dialogEndWait": 2, < "dialogKey": "dialog.floranmissionswitch.stuck", < "dialogTarget": "player" --- > "dialogWaitTime": {"value": 4}, > "dialogEndWait": {"value": 2}, > "dialogKey": {"value": "dialog.floranmissionswitch.stuck"}, > "dialogTarget": {"key": "player"} 177,178c156,157 < "range": 5, < "name": "medievalswitchlever" --- > "name": {"value": "medievalswitchlever"}, > "range": {"value": 5} 189c168 < "entity": "switch" --- > "entity": {"key": "switch"} 197c176 < "time": 2 --- > "time": {"value": 2} 205,208c184,187 < "dialogWaitTime": 4, < "dialogEndWait": 2, < "dialogKey": "dialog.floranmissionswitch.goodbye", < "dialogTarget": "player" --- > "dialogWaitTime": {"value": 4}, > "dialogEndWait": {"value": 2}, > "dialogKey": {"value": "dialog.floranmissionswitch.goodbye"}, > "dialogTarget": {"key": "player"} 216,220c195,196 < "offset": [ < 25, < 18 < ], < "position": "spawn" --- > "offset": {"value": [25, 18]}, > "position": {"key": "spawn"} 237c213 < "fail": 1 --- > "fail": {"value": 1} 245c221 < "position": "endposition" --- > "position": {"key": "endposition"} 247,257c223 < "output": { < "direction": "direction" < } < }, < { < "title": "faceDirection", < "type": "action", < "name": "faceDirection", < "parameters": { < "direction": "direction" < } --- > "output": {} 277c243 < } \ No newline at end of file --- > } behaviors\sequences\floranmission\nuruboss.behavior 25,26c25,26 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 40c40 < "entity": "boss" --- > "entity": {"key": "boss"} 48c48 < "uniqueId": "spiderboss" --- > "uniqueId": {"value": "spiderboss"} 66,71c66 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 84c79 < "entity": "player" --- > "entity": {"key": "player"} 92,93c87,88 < "cooldown": 1, < "onFail": true --- > "cooldown": {"value": 1}, > "onFail": {"value": true} 99,104c94 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 111,115c101,102 < "offset": [ < -11, < 0 < ], < "position": "spawn" --- > "offset": {"value": [-11, 0]}, > "position": {"key": "spawn"} 126,132c113,117 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "playerQuery", < "range": 30, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "playerQuery"}, > "range": {"value": 30}, > "withoutEntity": {"key": "self"} 148c133 < "entity": "player" --- > "entity": {"key": "player"} 163,167c148,149 < "offset": [ < -1, < 0 < ], < "position": "self" --- > "offset": {"value": [-1, 0]}, > "position": {"key": "self"} 177,182c159 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 195,196c172,173 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 214,219c191 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 226c198 < "type": "bossvulnerable" --- > "type": {"value": "bossvulnerable"} 240c212 < "limit": 1 --- > "limit": {"value": 1} 247,249c219,221 < "dialogType": "dialog.boss.shellbroken", < "entity": "player", < "tags": {} --- > "dialogType": {"value": "dialog.boss.shellbroken"}, > "entity": {"key": "player"}, > "tags": {"value": {}} 258c230 < "limit": 1 --- > "limit": {"value": 1} 265,267c237,239 < "dialogType": "dialog.boss.fleshy", < "entity": "player", < "tags": {} --- > "dialogType": {"value": "dialog.boss.fleshy"}, > "entity": {"key": "player"}, > "tags": {"value": {}} 276c248 < "limit": 1 --- > "limit": {"value": 1} 283,285c255,257 < "dialogType": "dialog.boss.finish", < "entity": "player", < "tags": {} --- > "dialogType": {"value": "dialog.boss.finish"}, > "entity": {"key": "player"}, > "tags": {"value": {}} 324c296 < "entity": "boss" --- > "entity": {"key": "boss"} behaviors\sequences\floranmission\nurucombat.behavior 20,21c20,21 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 29c29 < "entity": "boss" --- > "entity": {"key": "boss"} 43,44c43,44 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 51,56c51 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 63,64c58,59 < "entity": "boss", < "xRange": 10 --- > "entity": {"key": "boss"}, > "xRange": {"value": 10} 72c67 < "entity": "boss" --- > "entity": {"key": "boss"} 83,87c78,79 < "position": "targetPosition", < "offset": [ < 0, < 0 < ] --- > "offset": {"value": [0, 0]}, > "position": {"key": "targetPosition"} 111c103 < "target": "boss" --- > "target": {"key": "boss"} 122c114 < "direction": "targetDirection" --- > "direction": {"key": "targetDirection"} 130,134c122,123 < "offset": [ < "targetDirection", < 0 < ], < "position": "self" --- > "offset": {"value": ["targetDirection", 0]}, > "position": {"key": "self"} behaviors\sequences\floranmission\nuruendscene.behavior 28c28 < "time": 1 --- > "time": {"value": 1} 36,38c36,38 < "dialogType": "dialog.endscene.follow", < "entity": "player", < "tags": {} --- > "dialogType": {"value": "dialog.endscene.follow"}, > "entity": {"key": "player"}, > "tags": {"value": {}} 46c46 < "time": 2 --- > "time": {"value": 2} 54,58c54,55 < "offset": [ < 8, < -10 < ], < "position": "spawn" --- > "offset": {"value": [8, -10]}, > "position": {"key": "spawn"} 69,72c66,70 < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "position": "tunnelposition" --- > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "position": {"key": "tunnelposition"}, > "openDoors": {"value": false} 86c84 < "uniqueId": "floranartifactaltar" --- > "uniqueId": {"value": "floranartifactaltar"} 97c95 < "entity": "altar" --- > "entity": {"key": "altar"} 110,111c108,109 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 125c123 < "time": 5 --- > "time": {"value": 5} 133,135c131,133 < "dialogType": "dialog.endscene.smalltalk", < "entity": "player", < "tags": {} --- > "dialogType": {"value": "dialog.endscene.smalltalk"}, > "entity": {"key": "player"}, > "tags": {"value": {}} 157,158c155,156 < "direction": 1, < "run": true --- > "direction": {"value": 1}, > "run": {"value": true} 166,167c164,165 < "from": "self", < "to": "altarposition" --- > "from": {"key": "self"}, > "to": {"key": "altarposition"} 183,184c181,182 < "first": "altarDistance", < "second": 15 --- > "first": {"key": "altarDistance"}, > "second": {"value": 15} 203,207c201,202 < "offset": [ < -6, < 2 < ], < "position": "altarposition" --- > "offset": {"value": [-6, 2]}, > "position": {"key": "altarposition"} 218,221c213,217 < "groundPosition": true, < "maxGround": 2, < "minGround": -5, < "position": "altarposition" --- > "groundPosition": {"value": true}, > "maxGround": {"value": 2}, > "minGround": {"value": -5}, > "closeDoors": {"value": false}, > "position": {"key": "altarposition"} 242,244c238,240 < "cooldown": 1, < "onFail": false, < "onSuccess": true --- > "cooldown": {"value": 1}, > "onFail": {"value": false}, > "onSuccess": {"value": true} 251,256c247,250 < "position": "self", < "range": 50, < "entityTypes": [ < "npc" < ], < "type": "nuruarrived" --- > "entityTypes": {"value": ["npc"]}, > "position": {"key": "self"}, > "range": {"value": 50}, > "type": {"value": "nuruarrived"} 266c260 < "type": "chieftainspoke" --- > "type": {"value": "chieftainspoke"} 282c276 < "time": 3 --- > "time": {"value": 3} 302,304c296,298 < "cooldown": 0.5, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 0.5}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 311,317c305,309 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 20, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 20}, > "withoutEntity": {"key": "self"} 329c321 < "entity": "player" --- > "entity": {"key": "player"} 347c339 < "time": 1 --- > "time": {"value": 1} 355,358c347,350 < "dialogWaitTime": 4, < "dialogEndWait": 4, < "dialogKey": "dialog.endscene.end", < "dialogTarget": "player" --- > "dialogWaitTime": {"value": 4}, > "dialogEndWait": {"value": 4}, > "dialogKey": {"value": "dialog.endscene.end"}, > "dialogTarget": {"key": "player"} 372,374c364,366 < "cooldown": 1, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 1}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 387c379 < "uniqueId": "floranartifactaltar" --- > "uniqueId": {"value": "floranartifactaltar"} 398,399c390,391 < "entity": "altar", < "message": "setInteractive" --- > "entity": {"key": "altar"}, > "message": {"value": "setInteractive"} 424c416 < "type": "artifactTaken" --- > "type": {"value": "artifactTaken"} 440c432 < "time": 1 --- > "time": {"value": 1} 454,456c446,448 < "cooldown": 0.2, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 0.2}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 463,466c455,458 < "position": "self", < "range": 10, < "orderBy": "nearest", < "name": "arkteleporter" --- > "name": {"value": "arkteleporter"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 7} 478,479c470,471 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 487,488c479,480 < "direction": 1, < "run": false --- > "direction": {"value": 1}, > "run": {"value": false} 496,498c488,490 < "direction": "facingDirection", < "distance": 1.5, < "openLocked": true --- > "direction": {"key": "facingDirection"}, > "distance": {"value": 1.5}, > "openLocked": {"value": true} 516c508 < "entity": "exit" --- > "entity": {"key": "exit"} 527,531c519,520 < "offset": [ < 0, < 3 < ], < "position": "exitPosition" --- > "offset": {"value": [0, 3]}, > "position": {"key": "exitPosition"} 542,545c531,535 < "groundPosition": true, < "maxGround": 2, < "minGround": -3, < "position": "exitPosition" --- > "groundPosition": {"value": true}, > "maxGround": {"value": 2}, > "minGround": {"value": -3}, > "closeDoors": {"value": false}, > "position": {"key": "exitPosition"} 562,564c552,554 < "cooldown": 0.5, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 0.5}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 571,577c561,565 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 10, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 10}, > "withoutEntity": {"key": "self"} 594c582 < "time": 1 --- > "time": {"value": 1} 601,606c589 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 622,623c605,606 < "list": "players", < "type": "entity" --- > "list": {"key": "players"}, > "type": {"value": "entity"} 635,640c618,620 < "entity": "eachItem", < "message": "playCinematic", < "arguments": [ < "/cinematics/story/nuruatoutpost.cinematic", < true < ] --- > "arguments": {"value": ["/cinematics/story/nuruatoutpost.cinematic", true]}, > "entity": {"key": "eachItem"}, > "message": {"value": "playCinematic"} 652c632 < "name": "beamoutanddie" --- > "name": {"value": "beamoutanddie"} behaviors\sequences\floranmission\nurustartboss.behavior 7,11c7 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua" --- > "/scripts/actions/npc.lua" 30c26 < "limit": 1 --- > "limit": {"value": 1} 37,40c33,36 < "dialogWaitTime": 4, < "dialogEndWait": 4, < "dialogKey": "dialog.startboss.intro", < "dialogTarget": "player" --- > "dialogWaitTime": {"value": 4}, > "dialogEndWait": {"value": 4}, > "dialogKey": {"value": "dialog.startboss.intro"}, > "dialogTarget": {"key": "player"} 50c46 < "time": 2 --- > "time": {"value": 2} 64,65c60,61 < "cooldown": 1, < "onFail": true --- > "cooldown": {"value": 1}, > "onFail": {"value": true} 72,78c68,71 < "position": "self", < "range": 20, < "entityTypes": [ < "monster", < "npc" < ], < "type": "startboss" --- > "entityTypes": {"value": ["monster", "npc"]}, > "position": {"key": "self"}, > "range": {"value": 20}, > "type": {"value": "startboss"} 95,96c88,89 < "slot": "primary", < "itemName": "nurusspear" --- > "itemName": {"value": "nurusspear"}, > "slot": {"value": "primary"} 104,107c97,100 < "dialogWaitTime": 4, < "dialogEndWait": 2, < "dialogKey": "dialog.startboss.start", < "dialogTarget": "player" --- > "dialogWaitTime": {"value": 4}, > "dialogEndWait": {"value": 2}, > "dialogKey": {"value": "dialog.startboss.start"}, > "dialogTarget": {"key": "player"} behaviors\sequences\floranmission\nurutunnel.behavior 6d5 < "/scripts/actions/world.lua", 8,9d6 < "/scripts/actions/entity.lua", < "/scripts/actions/status.lua", 11c8,9 < "/scripts/actions/time.lua" --- > "/scripts/actions/time.lua", > "/scripts/actions/status.lua" 25,29c23,24 < "offset": [ < 0, < 25 < ], < "position": "spawn" --- > "offset": {"value": [0, 25]}, > "position": {"key": "spawn"} 46c41 < "cooldown": 1 --- > "cooldown": {"value": 1} 53,57c48,50 < "entityTypes": [ < "player" < ], < "position": "queryPosition", < "range": 15 --- > "entityTypes": {"value": ["player"]}, > "position": {"key": "queryPosition"}, > "range": {"value": 15} 80c73 < "direction": 1 --- > "direction": {"value": 1} 88c81 < "time": 10 --- > "time": {"value": 10} behaviors\sequences\glitchmission\baronlounge.behavior 15,20c15 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 27,34c22,28 < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -10, < "pathOptions": {}, < "position": "spawn", < "run": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -10}, > "pathOptions": {"value": {}}, > "position": {"key": "spawn"}, > "run": {"value": false} 42,46c36,40 < "position": "self", < "range": 5, < "orderBy": "nearest", < "orientation": "sit", < "unoccupied": true --- > "orderBy": {"value": "nearest"}, > "orientation": {"value": "sit"}, > "position": {"key": "self"}, > "range": {"value": 5}, > "unoccupied": {"value": true} 57,58c51,52 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 66c60 < "entity": "throne" --- > "entity": {"key": "throne"} 74c68 < "entity": "throne" --- > "entity": {"key": "throne"} behaviors\sequences\glitchmission\baronstart.behavior 16,19c16 < "parameters": { < "dialogWaitTime": 4, < "dialogEndWait": 2 < }, --- > "parameters": {}, 30,35c27 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 42c34 < "type": "missionComplete" --- > "type": {"value": "missionComplete"} 55,60c47 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 66,71c53 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 78,80c60,62 < "cooldown": 0.5, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 0.5}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 87,93c69,73 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 10, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 10}, > "withoutEntity": {"key": "self"} 105,106c85,86 < "list": "players", < "type": "entity" --- > "list": {"key": "players"}, > "type": {"value": "entity"} 113c93 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 122c102 < "list": "players" --- > "list": {"key": "players"} 135,137c115,117 < "dialogWaitTime": 6, < "dialogEndWait": 4, < "dialogKey": "dialog.baron.missionComplete" --- > "dialogWaitTime": {"value": 6}, > "dialogEndWait": {"value": 4}, > "dialogKey": {"value": "dialog.baron.missionComplete"} 151,152c131,132 < "direction": -1, < "run": false --- > "direction": {"value": -1}, > "run": {"value": false} 165,167c145,147 < "direction": -1, < "distance": 1.5, < "openLocked": true --- > "direction": {"value": -1}, > "distance": {"value": 1.5}, > "openLocked": {"value": true} 178c158 < "time": 0.5 --- > "time": {"value": 0.5} 191,192c171,172 < "direction": -1, < "run": false --- > "direction": {"value": -1}, > "run": {"value": false} 200,205c180 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 212c187 < "uniqueId": "glitchartifactaltar" --- > "uniqueId": {"value": "glitchartifactaltar"} 223,224c198,199 < "entity": "altar", < "message": "setInteractive" --- > "entity": {"key": "altar"}, > "message": {"value": "setInteractive"} 234c209 < "direction": 1 --- > "direction": {"value": 1} 248c223 < "type": "artifactTaken" --- > "type": {"value": "artifactTaken"} 264c239 < "direction": -1 --- > "direction": {"value": -1} 272c247 < "time": 0.5 --- > "time": {"value": 0.5} 280,282c255,257 < "direction": -1, < "distance": 1.5, < "openLocked": true --- > "direction": {"value": -1}, > "distance": {"value": 1.5}, > "openLocked": {"value": true} 290c265 < "time": 0.5 --- > "time": {"value": 0.5} 304,307c279,282 < "position": "self", < "range": 10, < "orderBy": "nearest", < "name": "arkteleporter" --- > "name": {"value": "arkteleporter"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 10} 318,319c293,294 < "direction": -1, < "run": false --- > "direction": {"value": -1}, > "run": {"value": false} 328,333c303 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 340c310 < "entity": "teleporter" --- > "entity": {"key": "teleporter"} 351,355c321,322 < "offset": [ < 0, < 0 < ], < "position": "teleporter" --- > "offset": {"value": [0, 0]}, > "position": {"key": "teleporter"} 366,372c333,338 < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "position": "teleporter", < "run": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "position": {"key": "teleporter"}, > "run": {"value": false} 388,390c354,356 < "cooldown": 0.5, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 0.5}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 397,403c363,367 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 8, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 8}, > "withoutEntity": {"key": "self"} 420,422c384,386 < "dialogWaitTime": 2, < "dialogEndWait": 1, < "dialogKey": "dialog.baron.beamOut" --- > "dialogWaitTime": {"value": 2}, > "dialogEndWait": {"value": 1}, > "dialogKey": {"value": "dialog.baron.beamOut"} 429,434c393 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 450,451c409,410 < "list": "players", < "type": "entity" --- > "list": {"key": "players"}, > "type": {"value": "entity"} 463,468c422,424 < "entity": "eachItem", < "message": "playCinematic", < "arguments": [ < "/cinematics/story/baronatoutpost.cinematic", < true < ] --- > "arguments": {"value": ["/cinematics/story/baronatoutpost.cinematic", true]}, > "entity": {"key": "eachItem"}, > "message": {"value": "playCinematic"} 486c442 < "name": "beamoutanddie" --- > "name": {"value": "beamoutanddie"} 511,516c467 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 523c474 < "type": "lastWaveComplete" --- > "type": {"value": "lastWaveComplete"} 536,541c487 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 548,550c494,496 < "cooldown": 0.5, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 0.5}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 557,563c503,507 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 10, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 10}, > "withoutEntity": {"key": "self"} 575,576c519,520 < "list": "players", < "type": "entity" --- > "list": {"key": "players"}, > "type": {"value": "entity"} 583c527 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 592c536 < "list": "players" --- > "list": {"key": "players"} 603,605c547,549 < "dialogWaitTime": 6, < "dialogEndWait": 0, < "dialogKey": "dialog.baron.finalWaveComplete" --- > "dialogWaitTime": {"value": 6}, > "dialogEndWait": {"value": 0}, > "dialogKey": {"value": "dialog.baron.finalWaveComplete"} 613c557 < "uniqueId": "missionmanager" --- > "uniqueId": {"value": "missionmanager"} 624,625c568,569 < "entity": "missionmanager", < "message": "bossWave" --- > "entity": {"key": "missionmanager"}, > "message": {"value": "bossWave"} 638,643c582,585 < "position": "self", < "range": 150, < "entityTypes": [ < "monster" < ], < "type": "bossAggro" --- > "entityTypes": {"value": ["monster"]}, > "position": {"key": "self"}, > "range": {"value": 150}, > "type": {"value": "bossAggro"} 669,674c611 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 680,685c617 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 692,694c624,626 < "cooldown": 0.5, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 0.5}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 701,707c633,637 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 10, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 10}, > "withoutEntity": {"key": "self"} 719,720c649,650 < "list": "players", < "type": "entity" --- > "list": {"key": "players"}, > "type": {"value": "entity"} 727c657 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 736c666 < "list": "players" --- > "list": {"key": "players"} 749,751c679,681 < "dialogWaitTime": 6, < "dialogEndWait": 4, < "dialogKey": "dialog.baron.start" --- > "dialogWaitTime": {"value": 6}, > "dialogEndWait": {"value": 4}, > "dialogKey": {"value": "dialog.baron.start"} 758,763c688 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 770,773c695,698 < "position": "self", < "range": 20, < "orderBy": "nearest", < "name": "bardoor2" --- > "name": {"value": "bardoor2"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 20} 784c709 < "entity": "altar" --- > "entity": {"key": "altar"} 795,799c720,721 < "offset": [ < 2, < 0 < ], < "position": "altarPosition" --- > "offset": {"value": [2, 0]}, > "position": {"key": "altarPosition"} 810,817c732,738 < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "pathOptions": {}, < "position": "altarPosition", < "run": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "pathOptions": {"value": {}}, > "position": {"key": "altarPosition"}, > "run": {"value": false} 827,829c748,750 < "dialogWaitTime": 6, < "dialogEndWait": 3, < "dialogKey": "dialog.baron.showRelic" --- > "dialogWaitTime": {"value": 6}, > "dialogEndWait": {"value": 3}, > "dialogKey": {"value": "dialog.baron.showRelic"} 837c758 < "direction": 1 --- > "direction": {"value": 1} 845,848c766 < "velocity": [ < 0, < 15 < ] --- > "velocity": {"value": [0, 15]} 856c774 < "uniqueId": "missionmanager" --- > "uniqueId": {"value": "missionmanager"} 867,868c785,786 < "entity": "missionmanager", < "message": "startSequence" --- > "entity": {"key": "missionmanager"}, > "message": {"value": "startSequence"} 876,878c794,796 < "dialogWaitTime": 6, < "dialogEndWait": 4, < "dialogKey": "dialog.baron.alerted" --- > "dialogWaitTime": {"value": 6}, > "dialogEndWait": {"value": 4}, > "dialogKey": {"value": "dialog.baron.alerted"} 897c815 < } \ No newline at end of file --- > } behaviors\sequences\glitchmission\nurufight.behavior 8,11d7 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", 21,26c17 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 33c24 < "time": 1.5 --- > "time": {"value": 1.5} 41,43c32,33 < "dialogType": "dialog.start", < "tags": {}, < "static": false --- > "dialogType": {"value": "dialog.start"}, > "tags": {"value": {}} 51c41 < "time": 2 --- > "time": {"value": 2} 59,60c49,50 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 73,78c63 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 85c70 < "type": "reinforcementsLeave" --- > "type": {"value": "reinforcementsLeave"} 93,95c78,79 < "dialogType": "dialog.leave", < "tags": {}, < "static": false --- > "dialogType": {"value": "dialog.leave"}, > "tags": {"value": {}} 103c87 < "time": 3 --- > "time": {"value": 3} 123c107 < "name": "beamoutanddie" --- > "name": {"value": "beamoutanddie"} 131c115 < "time": 1 --- > "time": {"value": 1} 143,144c127,128 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 152,160c136,141 < "broadcastInterval": 2, < "hostileDamageTeam": { < "type": "assistant", < "team": 1 < }, < "losTime": 8, < "queryRange": 50, < "trackingRange": 100, < "attackOnSight": "attackOnSight" --- > "attackOnSight": {"key": "attackOnSight"}, > "broadcastInterval": {"value": 2}, > "hostileDamageTeam": {"value": {"type": "assistant", "team": 1}}, > "losTime": {"value": 8}, > "queryRange": {"value": 50}, > "trackingRange": {"value": 100} 176,181c157 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 192,197c168 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 204c175 < "chance": 0.5 --- > "chance": {"value": 0.5} 212,214c183,185 < "dialogType": "dialog.attack", < "entity": "target", < "tags": {} --- > "dialogType": {"value": "dialog.attack"}, > "entity": {"key": "target"}, > "tags": {"value": {}} 235,239c206,207 < "idleTime": [ < 2, < 10 < ], < "alwaysRun": false --- > "idleTime": {"value": [2, 10]}, > "alwaysRun": {"value": false} behaviors\sequences\hylotlmission\koichiend.behavior 24,29c24 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 35,40c30 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 47,53c37,41 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 20, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 20}, > "withoutEntity": {"key": "self"} 64,65c52,53 < "list": "players", < "type": "entity" --- > "list": {"key": "players"}, > "type": {"value": "entity"} 72c60 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 81c69 < "list": "players" --- > "list": {"key": "players"} 94c82 < "entity": "player" --- > "entity": {"key": "player"} 101,106c89 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 113c96 < "time": 0.5 --- > "time": {"value": 0.5} 121,124c104,107 < "dialogWaitTime": "", < "dialogEndWait": "", < "dialogKey": "dialog.koichi.greet", < "dialogTarget": "player" --- > "dialogWaitTime": {"key": ""}, > "dialogEndWait": {"key": ""}, > "dialogKey": {"value": "dialog.koichi.greet"}, > "dialogTarget": {"key": "player"} 132,133c115,116 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 141,142c124,125 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 150,151c133,134 < "direction": 1, < "run": false --- > "direction": {"value": 1}, > "run": {"value": false} 159,161c142,144 < "direction": "facingDirection", < "distance": 1.5, < "openLocked": true --- > "direction": {"key": "facingDirection"}, > "distance": {"value": 1.5}, > "openLocked": {"value": true} 177,179c160,162 < "cooldown": 0.5, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 0.5}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 186,189c169,172 < "position": "self", < "range": 15, < "orderBy": "nearest", < "name": "hylotlartifactaltar" --- > "name": {"value": "hylotlartifactaltar"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 15} 202,207c185 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 214c192 < "entity": "altar" --- > "entity": {"key": "altar"} 225,229c203,204 < "offset": [ < 2, < 0 < ], < "position": "altarPosition" --- > "offset": {"value": [2, 0]}, > "position": {"key": "altarPosition"} 240,246c215,221 < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "position": "altarPosition", < "run": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "closeDoors": {"value": false}, > "position": {"key": "altarPosition"}, > "run": {"value": false} 256c231 < "direction": -1 --- > "direction": {"value": -1} 264,267c239,242 < "dialogWaitTime": "", < "dialogEndWait": "", < "dialogKey": "dialog.koichi.giveRelic", < "dialogTarget": "player" --- > "dialogWaitTime": {"key": ""}, > "dialogEndWait": {"key": ""}, > "dialogKey": {"value": "dialog.koichi.giveRelic"}, > "dialogTarget": {"key": "player"} 281,283c256,258 < "cooldown": 1, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 1}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 290,291c265,266 < "entity": "altar", < "message": "setInteractive" --- > "entity": {"key": "altar"}, > "message": {"value": "setInteractive"} 314c289 < "type": "artifactTaken" --- > "type": {"value": "artifactTaken"} 330c305 < "time": 1 --- > "time": {"value": 1} 338,339c313,314 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 347,348c322,323 < "fail": -1, < "success": -1 --- > "fail": {"value": -1}, > "success": {"value": -1} 356,357c331,332 < "direction": 1, < "run": false --- > "direction": {"value": 1}, > "run": {"value": false} 365,367c340,342 < "direction": "facingDirection", < "distance": 1.5, < "openLocked": true --- > "direction": {"key": "facingDirection"}, > "distance": {"value": 1.5}, > "openLocked": {"value": true} 383,385c358,360 < "cooldown": 0.5, < "onFail": true, < "onSuccess": true --- > "cooldown": {"value": 0.5}, > "onFail": {"value": true}, > "onSuccess": {"value": true} 392,395c367,370 < "position": "self", < "range": 15, < "orderBy": "nearest", < "name": "arkteleporter" --- > "name": {"value": "arkteleporter"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 15} 408,413c383 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 420c390 < "entity": "teleporter" --- > "entity": {"key": "teleporter"} 431,435c401,402 < "offset": [ < 0, < 0 < ], < "position": "teleporter" --- > "offset": {"value": [0, 0]}, > "position": {"key": "teleporter"} 446,452c413,419 < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "position": "teleporter", < "run": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "closeDoors": {"value": false}, > "position": {"key": "teleporter"}, > "run": {"value": false} 467,472c434 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 479,485c441,445 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 20, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 20}, > "withoutEntity": {"key": "self"} 496,497c456,457 < "list": "players", < "type": "entity" --- > "list": {"key": "players"}, > "type": {"value": "entity"} 504c464 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 513c473 < "list": "players" --- > "list": {"key": "players"} 534,537c494,497 < "dialogWaitTime": "", < "dialogEndWait": 0, < "dialogKey": "dialog.koichi.end", < "dialogTarget": "player" --- > "dialogWaitTime": {"key": ""}, > "dialogEndWait": {"value": 0}, > "dialogKey": {"value": "dialog.koichi.end"}, > "dialogTarget": {"key": "player"} 544,549c504 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 565,566c520,521 < "list": "players", < "type": "entity" --- > "list": {"key": "players"}, > "type": {"value": "entity"} 578,583c533,535 < "entity": "eachItem", < "message": "playCinematic", < "arguments": [ < "/cinematics/story/koichiatoutpost.cinematic", < true < ] --- > "arguments": {"value": ["/cinematics/story/koichiatoutpost.cinematic", true]}, > "entity": {"key": "eachItem"}, > "message": {"value": "playCinematic"} 601c553 < "name": "beamoutanddie" --- > "name": {"value": "beamoutanddie"} behaviors\sequences\hylotlmission\koichihologram.behavior 17,18c17,18 < "dialogWaitTime" : 4, < "dialogEndWait" : 2, --- > "dialogWaitTime": 4, > "dialogEndWait": 2, 25,30c25 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 37,38c32,33 < "fail": -1, < "success": 1 --- > "fail": {"value": -1}, > "success": {"value": 1} 51c46 < "dance": "" --- > "dance": {"value": ""} 59,64c54 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 70,75c60 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 82,88c67,71 < "entityTypes": [ < "player" < ], < "orderBy": "nearest", < "position": "self", < "range": 20, < "withoutEntity": "self" --- > "entityTypes": {"value": ["player"]}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 20}, > "withoutEntity": {"key": "self"} 99,100c82,83 < "list": "players", < "type": "entity" --- > "list": {"key": "players"}, > "type": {"value": "entity"} 107c90 < "entity": "filterItem" --- > "entity": {"key": "filterItem"} 116c99 < "list": "players" --- > "list": {"key": "players"} 129c112 < "entity": "player" --- > "entity": {"key": "player"} 137,140c120,123 < "dialogWaitTime": "", < "dialogEndWait": "", < "dialogKey": "", < "dialogTarget": "player" --- > "dialogWaitTime": {"key": ""}, > "dialogEndWait": {"key": ""}, > "dialogKey": {"value": ""}, > "dialogTarget": {"key": "player"} 151,156c134 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 168c146 < "shouldRun": "" --- > "shouldRun": {"key": ""} 174,179c152 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 186c159 < "direction": 1 --- > "direction": {"value": 1} 194c167 < "time": 0.25 --- > "time": {"value": 0.25} 202c175 < "dance": "koichihologramstudying" --- > "dance": {"value": "koichihologramstudying"} 210c183 < "time": 1 --- > "time": {"value": 1} 218,221c191,194 < "position": "self", < "range": 20, < "orderBy": "nearest", < "name": "airlockhatch" --- > "name": {"value": "airlockhatch"}, > "orderBy": {"value": "nearest"}, > "position": {"key": "self"}, > "range": {"value": 20} 237,238c210,211 < "entity": "door", < "func": "openDoor" --- > "entity": {"key": "door"}, > "func": {"value": "openDoor"} 251c224 < "dance": "koichihologramfading" --- > "dance": {"value": "koichihologramfading"} 259c232 < "time": 1 --- > "time": {"value": 1} 278c251 < } \ No newline at end of file --- > } behaviors\tenant\grumble.behavior 5c5 < "/scripts/tenant.lua", --- > "/scripts/actions/tenant.lua", 7,11c7,8 < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua" --- > "/scripts/actions/dialog.lua", > "/scripts/actions/npc.lua" 19,20c16,17 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 33,38c30 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 45,46c37,38 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 54,55c46,47 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 61,66c53 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 79,82c66 < "time": [ < 5, < 10 < ] --- > "time": {"value": [5, 10]} 93,96c77 < "time": [ < 25, < 25 < ] --- > "time": {"value": [25, 25]} 106,107c87,88 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 115,116c96,97 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 122,127c103 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 134,135c110,111 < "dialogType": "dialog.tenant.grumbles.severe", < "entity": "self" --- > "dialogType": {"value": "dialog.tenant.grumbles.severe"}, > "entity": {"key": "self"} 143,146c119 < "time": [ < 5, < 10 < ] --- > "time": {"value": [5, 10]} 157,160c130 < "time": [ < 10, < 10 < ] --- > "time": {"value": [10, 10]} 170,171c140,141 < "maxLoops": -1, < "untilSuccess": false --- > "maxLoops": {"value": -1}, > "untilSuccess": {"value": false} 177,182c147 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 189,190c154,155 < "dialogType": "dialog.tenant.grumbles.final", < "entity": "self" --- > "dialogType": {"value": "dialog.tenant.grumbles.final"}, > "entity": {"key": "self"} 198,201c163 < "time": [ < 5, < 10 < ] --- > "time": {"value": [5, 10]} 213,218c175 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 225c182 < "emote": "sad" --- > "emote": {"value": "sad"} 233,236c190 < "time": [ < 1, < 2 < ] --- > "time": {"value": [1, 2]} behaviors\tenant\returnhome.behavior 31c31 < "key": "homePosition" --- > "key": {"value": "homePosition"} 54,55c54,55 < "max": 2, < "min": -2 --- > "max": {"value": 2}, > "min": {"value": -2} 66,68c66,68 < "position": "homePosition", < "x": "offsetX", < "y": 0 --- > "position": {"key": "homePosition"}, > "x": {"key": "offsetX"}, > "y": {"value": 0} 79,82c79,82 < "avoidLiquid": true, < "maxHeight": 5, < "minHeight": 0, < "position": "homePosition" --- > "avoidLiquid": {"value": true}, > "maxHeight": {"value": 5}, > "minHeight": {"value": 0}, > "position": {"key": "homePosition"} 93c93 < "name": "footPosition" --- > "name": {"value": "footPosition"} 109c109 < "key": "homePosition" --- > "key": {"value": "homePosition"} 120c120 < "name": "footPosition" --- > "name": {"value": "footPosition"} 144,145c144,145 < "default": 3, < "path": "returnHome.minDistance" --- > "default": {"value": 3}, > "path": {"value": "returnHome.minDistance"} 156,158c156,158 < "position": "self", < "target": "homePosition", < "range": "minDistance" --- > "position": {"key": "self"}, > "range": {"key": "minDistance"}, > "target": {"key": "homePosition"} 168,169c168,169 < "fail": 1, < "success": 1 --- > "fail": {"value": 1}, > "success": {"value": 1} 177,182c177,182 < "avoidLiquid": true, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "position": "homePosition", < "run": false --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "position": {"key": "homePosition"}, > "run": {"value": false} 185d184 < "direction": "direction", 205,206c204,205 < "fail": 1, < "success": -1 --- > "fail": {"value": 1}, > "success": {"value": -1} 214c213 < "name": "homePathfinding" --- > "name": {"key": "homePathfinding"} 222c221 < "time": 1 --- > "time": {"value": 1} 249c248 < "name": "beamoutandteleport" --- > "name": {"value": "beamoutandteleport"} 269c268 < "type": "performTeleport" --- > "type": {"value": "performTeleport"} 277,278c276,277 < "footPosition": "footPosition", < "position": "homePosition" --- > "footPosition": {"key": "footPosition"}, > "position": {"key": "homePosition"} 286,289c285 < "time": [ < 2, < 2 < ] --- > "time": {"value": [2, 2]} 313,319c309,314 < "avoidLiquid": true, < "groundPosition": true, < "maxGround": 5, < "minGround": -5, < "position": "spawn", < "run": false, < "failFast": true --- > "avoidLiquid": {"value": true}, > "groundPosition": {"value": true}, > "maxGround": {"value": 5}, > "minGround": {"value": -5}, > "position": {"key": "spawn"}, > "run": {"value": false} 321,323c316 < "output": { < "direction": "direction" < } --- > "output": {} 327c320 < } \ No newline at end of file --- > } cinematics\story\finale\finale.cinematic 4737a4738 > KEVIN EDGER 4746d4746 < SAYTER 4778a4779 > SAYTER 4923c4924 < BRYAN HARCLERODE ^#4d4d4d;|^white; BRYAN WALKER ^#4d4d4d;|^white; BRYCEN L SOTH ^#4d4d4d;|^white; BWANA MCCALL ^#4d4d4d;|^white; C DIETZ ^#4d4d4d;|^white; C SEAWELL --- > BRYAN HARCLERODE ^#4d4d4d;|^white; BRYAN MACDONALD ^#4d4d4d;|^white; BRYAN WALKER ^#4d4d4d;|^white; BRYCEN L SOTH ^#4d4d4d;|^white; BWANA MCCALL ^#4d4d4d;|^white; C DIETZ ^#4d4d4d;|^white; C SEAWELL 4991c4992 < COLTON LADNER ^#4d4d4d;|^white; CONNOR NEWMAN ^#4d4d4d;|^white; CONNOR ROBIE ^#4d4d4d;|^white; CONNY SÖDERSTRÖM ^#4d4d4d;|^white; COOPER TEIXEIRA ^#4d4d4d;|^white; COREY MAY --- > COLTON LADNER ^#4d4d4d;|^white; CONNOR NEWMAN ^#4d4d4d;|^white; CONNOR ROBIE ^#4d4d4d;|^white; CONNY SÖDERSTRÖM ^#4d4d4d;|^white; COOLKATSLIM ^#4d4d4d;|^white; COOPER TEIXEIRA ^#4d4d4d;|^white; COREY MAY codex\human\humanhistory1.codex 16c16 < As our technology improved we were able to travel further into space, and in time we encountered other sentient life and plentiful resources. We were forever changed, enlightened by these discoveries. --- > As our technology improved we were able to travel further into space, and in time we encountered other sentient life and plentiful resources. We were forever changed, enlightened by these discoveries.", 18c18 < We became united in our goal to establish the Terrene Protectorate here on Earth as a bastion of peace and acceptance for all throughout the universe." --- > "We became united in our goal to establish the Terrene Protectorate here on Earth as a bastion of peace and acceptance for all throughout the universe." codex\optionalbosses\bossshockhopper.codex 11c11 < With the SHOCKHOPPER MK I --- > With Dr. Akaggy's SHOCKHOPPER MK I collections\actionfigures.collection 228a229,236 > "triplod" : { > "order" : 56, > "item" : "triplodaf" > }, > "paraspriteaf" : { > "order" : 57, > "item" : "paraspriteaf" > }, 232c240 < "order" : 56, --- > "order" : 58, 236c244 < "order" : 57, --- > "order" : 59, 240c248 < "order" : 58, --- > "order" : 60, 244c252 < "order" : 59, --- > "order" : 61, 248c256 < "order" : 60, --- > "order" : 62, 252c260 < "order" : 61, --- > "order" : 63, 256c264 < "order" : 62, --- > "order" : 64, 260c268 < "order" : 63, --- > "order" : 65, 264c272 < "order" : 64, --- > "order" : 66, 268c276 < "order" : 65, --- > "order" : 67, collections\monsters.collection 290a291,300 > }, > "triplod" : { > "order" : 58, > "monsterType" : "triplod", > "icon" : "/monsters/crawlers/triplod/triplod-full.png:idle.1" > }, > "parasprite" : { > "order" : 59, > "monsterType" : "parasprite", > "icon" : "/monsters/flyers/parasprite/parasprite.png:idle.1" dialog\converse.config 260c260 < "Our species are not so dissimilar, maybe an Apex and a human could even fall in love...", --- > "Our species are not so dissimilar, maybe our kind could even fall in love...", dungeons\microdungeons\underground\underground3c\underground3c_open1.json [TMX file differences are left out for huge size.] dungeons\missions\avianmissions\avianmission1.json [TMX file differences are left out for huge size.] dungeons\other\ancientvault\electric\room_9.json [TMX file differences are left out for huge size.] dungeons\other\challengerooms\ambush.json [TMX file differences are left out for huge size.] dungeons\other\challengerooms\challengerooms.dungeon 11,12c11 < "ambush", "collapse", "collision", "shortcircuit", "trenches", "heatwave", "avast", < "firebat" --- > "ambush", "collapse", "collision", "shortcircuit", "trenches", "heatwave", "avast" dungeons\other\challengerooms\doubleteam.json [TMX file differences are left out for huge size.] dungeons\other\challengerooms\firebat.json [TMX file differences are left out for huge size.] dungeons\other\challengerooms\runandgun.json [TMX file differences are left out for huge size.] dungeons\other\challengerooms\swarm.json [TMX file differences are left out for huge size.] dungeons\other\outpost\outpost.json [TMX file differences are left out for huge size.] dungeons\other\outpost\outpost_full.json [TMX file differences are left out for huge size.] interface\cockpit\cockpit.config 2,51c2,735 < "keypressTimeout" : 0.05, < "keypadSound" : "/sfx/interface/keypad_press.ogg", < "warpSound" : "/sfx/interface/warp.ogg", < "errorSound" : "/sfx/interface/nav_insufficient_fuel.ogg", < "scanSound" : "/sfx/interface/scan.ogg", < "onSound" : "/sfx/interface/nav_computer_on.ogg", < "offSound" : "/sfx/interface/nav_computer_off.ogg", < < "indicatorPulseLevel" : 1.2, < "indicatorPulseTime" : 1.25, < "indicatorPulseMin" : 0.2, < < "hoverIndicatorLeft" : "/interface/cockpit/selectedWest.png", < "hoverIndicatorTop" : "/interface/cockpit/selectedNorth.png", < "hoverIndicatorRight" : "/interface/cockpit/selectedEast.png", < "hoverIndicatorBottom" : "/interface/cockpit/selectedSouth.png", < "hoverIndicatorScale" : 0.5, < < "focusIndicatorTL" : "/interface/cockpit/selectedSmall_TopLeft.png", < "focusIndicatorTR" : "/interface/cockpit/selectedSmall_TopRight.png", < "focusIndicatorBL" : "/interface/cockpit/selectedSmall_BottomLeft.png", < "focusIndicatorBR" : "/interface/cockpit/selectedSmall_BottomRight.png", < "focusIndicatorCenter" : "/interface/cockpit/selectedCenter.png", < "focusIndicatorScale" : 1.0, < < "bookmarkIndicator" : "/interface/cockpit/bookmarkhover.png", < "bookmarkIndicatorScale" : 0.5, < "bookmarkIndicatorBasePosition" : [0, -0.3], < < "youAreHereIndicator" : "/interface/cockpit/youareherehover.png", < "youAreHereIndicatorScale" : 0.5, < "youAreHereIndicatorBasePosition" : [0, 0.3], < < "starmapScreenScale" : 3.0, < "starmapScreenSlowMovement" : 0.18, < "starmapScreenFastMovement" : 0.36, < "starmapSelectDiameter" : 10, < "starmapIndicatorSize" : 8, < "constellationLineColor" : [200, 200, 255, 128], < "constellationLineWidth" : 2.0, < < "starmapNameFontSize" : 8, < "starmapNameDrawPosition" : [0, 8], < "starmapTypeColor" : { < "default" : [255, 255, 255, 255], < "whitestar" : [255, 255, 255, 255], < "bluestar" : [100, 100, 255, 255], < "yellowstar" : [255, 255, 50, 255], < "orangestar" : [255, 150, 50, 255], < "redstar" : [255, 50, 50, 255] --- > "gui" : { > "background" : { > "zlevel" : 0, > "type" : "background", > "fileHeader" : "/interface/cockpit/consoleheader.png", > "fileBody" : "/interface/cockpit/consolebody.png" > }, > "consoleScreenCanvas" : { > "zlevel" : 1, > "type" : "canvas", > "rect" : [1, 22, 395, 318], > "captureMouseEvents" : true > }, > "close" : { > "zlevel" : 3, > "type" : "button", > "base" : "/interface/x.png", > "hover" : "/interface/xhover.png", > "pressed" : "/interface/xpress.png", > "pressedOffset" : [0, 0], > "position" : [378, 324] > }, > "windowtitle" : { > "type" : "title", > "title" : " Navigation Console", > "subtitle" : "^#b9b5b2; Select your destination", > "position" : [74, 402], > "icon" : { > "type" : "image", > "file" : "/interface/cockpit/cockpit.png", > "position" : [0, 0], > "zlevel" : -1 > } > }, > > "bookmarksFrame" : { > "type" : "layout", > "visible" : false, > "layoutType" : "basic", > "rect" : [4, 153, 190, 298], > "zlevel" : 10, > "children" : { > "background" : { > "type" : "image", > "file" : "/interface/cockpit/bookmarkswindow.png", > "zlevel" : 5 > }, > "bookmarkList" : { > "zlevel" : 10, > "type" : "scrollArea", > "rect" : [2, 14, 184, 143], > "buttons" : { > "horizontal" : { > "forward" : { > "base" : "/interface/bookmarks/scrollarea/harrow-forward.png", > "hover" : "/interface/bookmarks/scrollarea/harrow-forwardhover.png", > "pressed" : "" > }, > "backward" : { > "base" : "/interface/bookmarks/scrollarea/harrow-backward.png", > "hover" : "/interface/bookmarks/scrollarea/harrow-backwardhover.png", > "pressed" : "" > } > }, > "vertical" : { > "forward" : { > "base" : "/interface/bookmarks/scrollarea/varrow-forward.png", > "hover" : "/interface/bookmarks/scrollarea/varrow-forwardhover.png", > "pressed" : "" > }, > "backward" : { > "base" : "/interface/bookmarks/scrollarea/varrow-backward.png", > "hover" : "/interface/bookmarks/scrollarea/varrow-backwardhover.png", > "pressed" : "" > } > } > }, > "thumbs" : { > "horizontal" : { > "base" : { > "begin" : "/interface/bookmarks/scrollarea/hthumb-begin.png", > "end" : "/interface/bookmarks/scrollarea/hthumb-end.png", > "inner" : "/interface/bookmarks/scrollarea/hthumb-inner.png" > }, > "hover" : { > "begin" : "/interface/bookmarks/scrollarea/hthumb-beginhover.png", > "end" : "/interface/bookmarks/scrollarea/hthumb-endhover.png", > "inner" : "/interface/bookmarks/scrollarea/hthumb-innerhover.png" > }, > "pressed" : { > "begin" : "/interface/bookmarks/scrollarea/hthumb-beginhover.png", > "end" : "/interface/bookmarks/scrollarea/hthumb-endhover.png", > "inner" : "/interface/bookmarks/scrollarea/hthumb-innerhover.png" > } > }, > "vertical" : { > "base" : { > "begin" : "/interface/bookmarks/scrollarea/vthumb-begin.png", > "end" : "/interface/bookmarks/scrollarea/vthumb-end.png", > "inner" : "/interface/bookmarks/scrollarea/vthumb-inner.png" > }, > "hover" : { > "begin" : "/interface/bookmarks/scrollarea/vthumb-beginhover.png", > "end" : "/interface/bookmarks/scrollarea/vthumb-endhover.png", > "inner" : "/interface/bookmarks/scrollarea/vthumb-innerhover.png" > }, > "pressed" : { > "begin" : "/interface/bookmarks/scrollarea/vthumb-beginhover.png", > "end" : "/interface/bookmarks/scrollarea/vthumb-endhover.png", > "inner" : "/interface/bookmarks/scrollarea/vthumb-innerhover.png" > } > } > }, > "children" : { > "bookmarkItemList" : { > "type" : "list", > "callback" : "null", > "zlevel" : 10, > "schema" : { > "selectedBG" : "/interface/bookmarks/list/selected.png", > "unselectedBG" : "/interface/bookmarks/list/unselected.png", > "spacing" : [0, 2], > "memberSize" : [170, 22], > "listTemplate" : { > "itemButton" : { > "type" : "button", > "callback" : "selectBookmark", > "size" : [170, 22], > "position" : [0, 0], > "pressedOffset" : [0, 0], > "base" : "/interface/bookmarks/list/unselected.png", > "hover" : "/interface/bookmarks/list/selected.png", > "pressed" : "/interface/bookmarks/list/unselected.png", > "zlevel" : -1 > }, > "icon" : { > "type" : "image", > "position" : [3, 3], > "file" : "/interface/bookmarks/icons/barren.png", > "mouseTransparent" : true > }, > "name" : { > "type" : "label", > "position" : [23, 11], > "hAnchor" : "left", > "width" : 120, > "value" : "Bookmark Name", > "color" : [255, 255, 255], > "mouseTransparent" : true > }, > "planetName" : { > "type" : "label", > "position" : [23, 3], > "hAnchor" : "left", > "width" : 120, > "value" : "Planet Name", > "color" : [180, 180, 180], > "mouseTransparent" : true > }, > "editButton" : { > "type" : "button", > "callback" : "editBookmark", > "position" : [151, 3], > "pressedOffset" : [0, 0], > "base" : "/interface/bookmarks/list/editup.png", > "hover" : "/interface/bookmarks/list/edithover.png", > "pressed" : "/interface/bookmarks/list/editup.png" > } > } > } > } > } > } > } > }, > > "editBookmarkFrame" : { > "type" : "layout", > "visible" : false, > "layoutType" : "basic", > "position" : [100, 100], > "size" : [168, 113], > "zlevel" : 10, > "children" : { > "background" : { > "type" : "imageStretch", > "size" : [168, 113], // Height is header + footer, body height is added dynamically > "direction" : "vertical", > "stretchSet" : { > "type" : "repeat", > "end" : "/interface/bookmarks/edit/header.png", > "inner" : "/interface/bookmarks/edit/body.png", > "begin" : "/interface/bookmarks/edit/footer.png" > } > }, > "ok" : { > "type" : "button", > "base" : "/interface/bookmarks/edit/buttonup.png", > "hover" : "/interface/bookmarks/edit/buttonover.png", > "position" : [108, 28], > "caption" : "Accept", > "callback" : "confirmBookmark" > }, > "remove" : { > "type" : "button", > "base" : "/interface/bookmarks/edit/redbuttonup.png", > "hover" : "/interface/bookmarks/edit/redbuttonover.png", > "position" : [57, 28], > "caption" : "Delete", > "callback" : "deleteBookmark" > }, > "close" : { > "type" : "button", > "base" : "/interface/bookmarks/edit/buttonup.png", > "hover" : "/interface/bookmarks/edit/buttonover.png", > "position" : [6, 28], > "caption" : "Cancel", > "callback" : "cancelBookmark" > }, > "title" : { > "type" : "label", > "position" : [80, 92], > "hAnchor" : "mid", > "vAnchor" : "bottom", > "centered" : true, > "fontSize" : 16, > "value" : "New Bookmark" > }, > "icon" : { > "type" : "image", > "position" : [10, 66], > "file" : "/interface/bookmarks/icons/barren.png" > }, > "planetName" : { > "type" : "label", > "position" : [30, 78], > "hAnchor" : "left", > "vAnchor" : "top", > "value" : "" > }, > "name" : { > "type" : "textbox", > "position" : [11, 50], > "hint" : "Enter bookmark name", > "enterKey" : "addBookmark", > "escapeKey" : "cancelBookmark", > "maxWidth" : 134, > "regex" : "[a-zA-Z0-9 '-?!.]{0,28}", > "callback" : "null" > } > } > }, > > "jumpDialog" : { > "type" : "layout", > "visible" : false, > "layoutType" : "basic", > "position" : [121, 132], > "size" : [161, 79], > "zlevel" : 10, > "children" : { > "background" : { > "type" : "image", > "file" : "/interface/cockpit/jumpdialog.png" > }, > "jump" : { > "type" : "button", > "base" : "/interface/cockpit/jumpbutton.png:inactive", > "hover" : "/interface/cockpit/jumpbutton.png:hover", > "position" : [85, 14], > "caption" : "Jump", > "callback" : "confirmJump" > }, > "cancel" : { > "type" : "button", > "base" : "/interface/cockpit/jumpbutton.png:inactive", > "hover" : "/interface/cockpit/jumpbutton.png:hover", > "position" : [28, 14], > "caption" : "Cancel", > "callback" : "cancelJump" > }, > "title" : { > "type" : "label", > "position" : [80, 64], > "hAnchor" : "mid", > "vAnchor" : "bottom", > "centered" : true, > "fontSize" : 12, > "value" : "Confirm FTL" > }, > "text" : { > "type" : "label", > "position" : [80, 54], > "hAnchor" : "mid", > "vAnchor" : "top", > "wrapWidth" : 155, > "value" : "FTL travel will consume ^green;100 fuel^reset;.\nConfirm to proceed." > } > } > }, > > "coordinatesFrame" : { > "type" : "layout", > "visible" : false, > "zlevel" : 10, > "layoutType" : "basic", > "position" : [4, 223], > "size" : [174, 45], > "children" : { > "background" : { > "type" : "image", > "file" : "/interface/cockpit/coordinatesframe.png" > }, > "xLabelBg" : { > "type" : "image", > "file" : "/interface/cockpit/coordinatelabel.png", > "position" : [2, 30], > "zlevel" : 5 > }, > "xLabel" : { > "type" : "label", > "position" : [8, 36], > "value" : "X", > "hAnchor" : "mid", > "vAnchor" : "mid", > "fontSize" : 10, > "color" : [36, 178, 30], > "zlevel" : 10 > }, > "xBg" : { > "type" : "image", > "file" : "/interface/cockpit/coordinatetextbox.png", > "position" : [13, 30], > "zlevel" : 5 > }, > "x" : { > "type" : "textbox", > "position" : [16, 31], > "enterKey" : "goToCoordinate", > "maxWidth" : 120, > "regex" : "-?[0-9]{0,10}", > "fontSize" : 10, > "color" : [36, 178, 30], > "zlevel" : 10, > "callback" : "coordinateChanged" > }, > "yLabelBg" : { > "type" : "image", > "file" : "/interface/cockpit/coordinatelabel.png", > "position" : [2, 16], > "zlevel" : 5 > }, > "yLabel" : { > "type" : "label", > "position" : [8, 22], > "value" : "Y", > "hAnchor" : "mid", > "vAnchor" : "mid", > "fontSize" : 10, > "color" : [36, 178, 30], > "zlevel" : 10 > }, > "yBg" : { > "type" : "image", > "file" : "/interface/cockpit/coordinatetextbox.png", > "position" : [13, 16], > "zlevel" : 5 > }, > "y" : { > "type" : "textbox", > "position" : [16, 17], > "enterKey" : "goToCoordinate", > "maxWidth" : 120, > "regex" : "-?[0-9]{0,10}", > "fontSize" : 10, > "color" : [36, 178, 30], > "zlevel" : 10, > "callback" : "coordinateChanged" > }, > "go" : { > "type" : "button", > "base" : "/interface/cockpit/gobutton.png:inactive", > "hover" : "/interface/cockpit/gobutton.png:hover", > "pressed" : "/interface/cockpit/gobutton.png:inactive", > "position" : [2, 2], > "pressedOffset" : [0, 0], > "caption" : "GO", > "fontColor" : [36, 178, 30], > "callback" : "goToCoordinate" > } > } > }, > > "showBookmarkList" : { > "zlevel" : 10, > "type" : "button", > "base" : "/interface/cockpit/bookmarksbutton.png:inactive", > "hover" : "/interface/cockpit/bookmarksbutton.png:hover", > "pressed" : "/interface/cockpit/bookmarksbutton.png:inactive", > "position" : [4, 300], > "pressedOffset" : [0, 0], > "callback" : "toggleBookmarks" > }, > > "goToShip" : { > "zlevel" : 10, > "type" : "button", > "base" : "/interface/cockpit/gotoshipbutton.png:inactive", > "hover" : "/interface/cockpit/gotoshipbutton.png:hover", > "pressed" : "/interface/cockpit/gotoshipbutton.png:inactive", > "position" : [4, 285], > "pressedOffset" : [0, 0], > "callback" : "goToShip" > }, > > "goToQuest" : { > "zlevel" : 10, > "type" : "button", > "base" : "/interface/cockpit/questbutton.png:inactive", > "hover" : "/interface/cockpit/questbutton.png:hover", > "pressed" : "/interface/cockpit/questbutton.png:inactive", > "position" : [4, 270], > "pressedOffset" : [0, 0], > "callback" : "goToQuest" > }, > > "showCoordinates" : { > "zlevel" : 10, > "type" : "button", > "base" : "/interface/cockpit/coordinatesbutton.png:inactive", > "hover" : "/interface/cockpit/coordinatesbutton.png:hover", > "pressed" : "/interface/cockpit/coordinatesbutton.png:inactive", > "position" : [4, 255], > "pressedOffset" : [0, 0], > "callback" : "toggleCoordinates" > }, > > "clusterinfo" : { > "type" : "layout", > "layoutType" : "basic", > "size" : [128, 66], > "zlevel" : 5, > "children" : { > "background" : { > "type" : "imageStretch", > "zlevel" : 5, > "size" : [128, 43], // Height is header + footer, body height is added dynamically > "direction" : "vertical", > "stretchSet" : { > "end" : "/interface/cockpit/clusterinfoheader.png", > "inner" : "/interface/cockpit/clusterinfobody.png", > "begin" : "/interface/cockpit/clusterinfofooter.png" > } > }, > "inner" : { > "type" : "layout", > "layoutType" : "basic", > "size" : [126, 43], > "position" : [2, 5], > "zlevel" : 10, > "children" : { > "type" : { > "type" : "image", > "position" : [3, 22], > "image" : "" > }, > "name" : { > "type" : "label", > "position" : [24, 30], > "value" : "THIS IS A CLUSTER" > }, > "moons" : { > "type" : "label", > "position" : [24, 21], > "color" : [150, 150, 150], > "value" : "MANY MOONS" > }, > "view" : { > "type" : "button", > "callback" : "viewSelection", > "size" : [124, 14], > "position" : [0, 1], > "pressedOffset" : [0, 0], > "fontColorDisabled" : [107, 107, 107], > "fontColor" : [23, 178, 0], > "disabled" : true, > "caption" : "UNEXPLORED", > "base" : "/interface/cockpit/clusterinfobutton.png:active", > "hover" : "/interface/cockpit/clusterinfobutton.png:hover", > "pressed" : "/interface/cockpit/clusterinfobutton.png:active", > "inactive" : "/interface/cockpit/clusterinfobutton.png:inactive", > "zlevel" : -1 > } > } > } > } > }, > > "objectinfo" : { > "type" : "layout", > "layoutType" : "basic", > "size" : [128, 96], > "zlevel" : 5, > "children" : { > "background" : { > "type" : "imageStretch", > "zlevel" : 5, > "size" : [128, 96], // Height is header + footer, body height is added dynamically > "direction" : "vertical", > "stretchSet" : { > "end" : "/interface/cockpit/objectinfoheader.png", > "inner" : "/interface/cockpit/objectinfobody.png", > "begin" : "/interface/cockpit/objectinfofooter.png" > } > }, > "inner" : { > "type" : "layout", > "layoutType" : "basic", > "size" : [126, 70], > "position" : [2, 5], > "zlevel" : 10, > "children" : { > "name" : { > "type" : "label", > "hAnchor" : "mid", > "position" : [63, 74], > "value" : "SPACE OBJECT" > }, > "description" : { > "type" : "label", > "position" : [2, 69], > "wrapWidth" : 122, > "color" : [200, 200, 200], > "vAnchor" : "top", > "value" : "THIS IS A VERY NICE SPACE OBJECT" > }, > "bookmark" : { > "type" : "button", > "callback" : "addBookmark", > "size" : [124, 14], > "position" : [0, 1], > "pressedOffset" : [0, 0], > "fontColor" : [23, 178, 0], > "caption" : "ADD BOOKMARK", > "base" : "/interface/cockpit/clusterinfobutton.png:active", > "hover" : "/interface/cockpit/clusterinfobutton.png:hover", > "pressed" : "/interface/cockpit/clusterinfobutton.png:active", > "zlevel" : -1 > } > } > } > } > }, > > "systeminfo" : { > "type" : "layout", > "layoutType" : "basic", > "size" : [103, 36], > "zlevel" : 5, > "children" : { > "background" : { > "type" : "imageStretch", > "zlevel" : 5, > "size" : [103, 36], > "direction" : "vertical", > "stretchSet" : { > "end" : "/interface/cockpit/systeminfoheader.png", > "inner" : "/interface/cockpit/systeminfobody.png", > "begin" : "/interface/cockpit/systeminfofooter.png" > } > }, > "inner" : { > "type" : "layout", > "layoutType" : "basic", > "size" : [99, 17], > "position" : [2, 5], > "zlevel" : 10, > "children" : { > "type" : { > "type" : "label", > "hAnchor" : "mid", > "position" : [50, 2], > "value" : "STAR TYPE" > }, > "name" : { > "type" : "label", > "hAnchor" : "mid", > "position" : [50, 2], > "value" : "SYSTEM" > }, > "planetList" : { > "type" : "list", > "callback" : "null", > "position" : [2, 14], > "fillDown" : false, > "schema" : { > "spacing" : [0, 4], > "memberSize" : [97, 18], > "listTemplate" : { > "icon" : { > "type" : "image", > "position" : [0, 0] > }, > "type" : { > "type" : "label", > "position" : [22, 7], > "vAnchor" : "mid", > "value" : "PLANET TYPE" > } > } > } > }, > "view" : { > "type" : "button", > "callback" : "viewSelection", > "size" : [99, 14], > "position" : [0, 1], > "pressedOffset" : [0, 0], > "fontColorDisabled" : [107, 107, 107], > "fontColor" : [23, 178, 0], > "disabled" : true, > "caption" : "UNEXPLORED", > "base" : "/interface/cockpit/systeminfobutton.png:active", > "hover" : "/interface/cockpit/systeminfobutton.png:hover", > "pressed" : "/interface/cockpit/systeminfobutton.png:active", > "inactive" : "/interface/cockpit/systeminfobutton.png:inactive", > "zlevel" : -1 > } > } > } > } > }, > > "planetinfo" : { > "type" : "layout", > "layoutType" : "basic", > "size" : [128, 194], > "zlevel" : 5, > "children" : { > "background" : { > "type" : "imageStretch", > "zlevel" : 5, > "size" : [128, 194], // Height is header + footer, body height is added dynamically > "direction" : "vertical", > "stretchSet" : { > "type" : "repeat", > "end" : "/interface/cockpit/planetinfoheader.png", > "inner" : "/interface/cockpit/planetinfobody.png", > "begin" : "/interface/cockpit/planetinfofooter.png" > } > }, > "inner" : { > "type" : "layout", > "layoutType" : "basic", > "size" : [126, 184], > "position" : [2, 5], > "zlevel" : 10, > "children" : { > "name" : { > "type" : "label", > "zlevel" : 10, > "hAnchor" : "mid", > "position" : [65, 163], > "value" : "THIS IS A PLANET" > }, > "description" : { > "type" : "label", > "zlevel" : 10, > "position" : [4, 157], > "vAnchor" : "top", > "wrapWidth" : 118, > "value" : "DESCRIPTION OF THIS PLANET" > }, > "threatLabel" : { > "type" : "label", > "zlevel" : 10, > "position" : [4, 82], > "vAnchor" : "bottom", > "wrapWidth" : 118, > "value" : "Threat: " > }, > "threatValue" : { > "type" : "label", > "zlevel" : 10, > "position" : [35, 82], > "vAnchor" : "bottom", > "wrapWidth" : 118, > "value" : "dangerous" > }, > "ores" : { > "type" : "label", > "zlevel" : 10, > "hAnchor" : "mid", > "position" : [65, 69], > "value" : "Geological Analysis" > }, > "oreLayout" : { > "type" : "layout", > "layoutType" : "flow", > "rect" : [ 2, 51, 124, 67 ], > "spacing" : [2, 0], > "zlevel" : 10 > }, > "weather" : { > "type" : "label", > "zlevel" : 10, > "hAnchor" : "mid", > "position" : [65, 39], > "value" : "Weather" > }, > "weatherLayout" : { > "type" : "layout", > "layoutType" : "flow", > "rect" : [ 2, 21, 124, 37 ], > "spacing" : [4, 0], > "zlevel" : 10 > }, > "bookmark" : { > "type" : "button", > "callback" : "addBookmark", > "size" : [124, 14], > "position" : [0, 1], > "pressedOffset" : [0, 0], > "fontColor" : [23, 178, 0], > "caption" : "ADD BOOKMARK", > "base" : "/interface/cockpit/clusterinfobutton.png:active", > "hover" : "/interface/cockpit/clusterinfobutton.png:hover", > "pressed" : "/interface/cockpit/clusterinfobutton.png:active", > "zlevel" : -1 > } > } > } > } > } 53,59c737,742 < "starmapTypeDescription" : { < "default" : "Mysterious Star", < "whitestar" : "Gentle Star", < "orangestar" : "Temperate Star", < "yellowstar" : "Radioactive Star", < "bluestar" : "Frozen Star", < "redstar" : "Fiery Star" --- > > "canvasClickCallbacks" : { > "consoleScreenCanvas" : "canvasClickEvent" > }, > "canvasKeyCallbacks" : { > "consoleScreenCanvas" : "canvasKeyEvent" 62,84c745,757 < "travelLineDashLength" : 10, < "travelLineColor" : [255, 255, 255, 100], < "travelLineWidth" : 1, < < "intraSystemFuelcost" : 0, < < "backgroundLayers" : [ < { < "image" : "/interface/cockpit/bgstars.png", < "scale" : 0.5, < "parallax" : 10 < }, < { < "image" : "/interface/cockpit/nebula1.png", < "scale" : 0.5, < "parallax" : 8 < }, < { < "image" : "/interface/cockpit/grid.png", < "scale" : 0.5, < "parallax" : 2.5 < } < ], --- > "scriptWidgetCallbacks" : [ > "addBookmark", > "toggleBookmarks", > "confirmBookmark", > "deleteBookmark", > "cancelBookmark", > > "goToShip", > "goToQuest", > > "toggleCoordinates", > "goToCoordinate", > "coordinateChanged", 86,87c759,760 < "orbitRings" : "/celestial/system/orbitallines/_.png", < "orbitPathScale" : 0.5, --- > "confirmJump", > "cancelJump", 89,102c762 < "systemOrbitScales" : [0.06, 0.1, 0.14, 0.19, 0.23, 0.27, 0.31, 0.35, 0.40, 0.44, 0.48, 0.52], < "systemOrbitPositions" : [ < [273, 0], < [241, 26], < [160, 45], < [-160, 45], < [-241, 26], < [-273, 0], < [-241, -26], < [-140, -48], < [-50, -55], < [50, -55], < [140, -48], < [241, -26] --- > "viewSelection" 105,108c765,766 < "systemNameDrawPosition" : [197, 135], < "systemNameFontSize" : 12, < "systemHoverNameDrawPosition" : [197, 125], < "systemHoverNameFontSize" : 8, --- > "scripts" : [ "/interface/cockpit/cockpit.lua" ], > "scriptDelta" : 1, 110c768,775 < "systemCenter" : [197, 75], --- > "planetInfoBox" : { > "height" : 194, > "bookmarkButtonCaption" : { > "add" : "ADD BOOKMARK", > "edit" : "EDIT BOOKMARK", > "disabled" : "CANNOT BOOKMARK" > } > }, 112,113c777,784 < "systemSelectDiameter" : 10, < "systemIndicatorSize" : 14, --- > "clusterInfoBox" : { > "height" : 53, > "iconImage" : "/interface/bookmarks/icons/%s.png", > "viewButtonCaption" : { > "enabled" : "VIEW", > "disabled" : "UNEXPLORED" > } > }, 115c786,794 < "planetCenter" : [95, 75], --- > "objectInfoBox" : { > "height" : 96, > "bookmarkButtonCaption" : { > "add" : "ADD BOOKMARK", > "edit" : "EDIT BOOKMARK", > "disabled" : "CANNOT BOOKMARK", > "unexplored" : "UNEXPLORED" > } > }, 117,118c796,805 < "planetMetadataContainerOffset" : [194, 2], < "planetMetadataContainerFile" : "/interface/cockpit/planetinfoframe.png", --- > "systemInfoBox" : { > "startHeight" : 40, > "nameLabelHeight" : 6, > "typeLabelHeight" : 19, > "iconImage" : "/interface/bookmarks/icons/%s.png", > "viewButtonCaption" : { > "enabled" : "VIEW", > "disabled" : "UNEXPLORED" > } > }, 120,123c807,893 < "satelliteNameDrawPosition" : [210, 136], < "satelliteNameColor" : [240, 240, 240], < "satelliteNameEmptyText" : "< no planet selected >", < "satelliteNameFontSize" : 8, --- > "visitableTypeDescription" : { > // iron tier 1 > "garden" : [ > "^#76fe68;Lush ^white;foothills mark this landing location. Both flora and fauna are abundant here. A beam site of immeasurable safety.", > "The beam site is located in a tranquil area of great bio-diversity. There are resources here that you could use. A ^#76fe68;lush ^white;and pleasant land.", > "Readings indicate the landing site is not unfavourable - the area is safe, and lavish with both flora and fauna. A ^#76fe68;lush ^white;and hospitable place." > ], > > // (a) steel tier 2 > "forest" : [ > "Densely colonized by trees and other flora, this ^#15ce02;forest ^white;landing site is a hospitable location that supports a diversity of life - potentially including your own.", > "Leafy trees abound in this ^#15ce02;forest ^white;location. The area is hospitable to life, my database indicates that you may encounter woodland creatures.", > "Your beam site for this planet is located in a ^#15ce02;forest^white;. Readings indicate that this wooded area is relatively tranquil." > ], > "desert" : [ > "There is limited flora here, but the location does support life. There is also an abundance of sand. Simply put, it is a ^#e6c801;desert^white;.", > "A ^#e6c801;desert^white; area populated by cacti, as well as various animal life. A relatively safe landing site, so long as you avoid the sandstorms.", > "Sand. Readings indicate sand. Also some cacti... but predominantly sand. Given the available information I speculate that the landing site is situated in a ^#e6c801;desert^white;." > ], > > // titanium tier 3 > "snow" : [ > "This chilly landing site is laden with ^#69f1fd;snow^white;. Sundry trees grow here and various animals also thrive in the cold conditions. An excellent place to make snowballs.", > "The landing location is cold, but not perilously so. ^#69f1fd;Snow^white; covers the area and blizzards are a possibility. A hat and gloves may be advisable.", > "This location is relatively chill, and ^#69f1fd;snow^white; lies thickly on the ground. My sensors indicate that there are critters scampering through the soft blanket of white." > ], > "savannah" : [ > "The landing site is situated in an area of ^#ffe21d;dry grassland ^white;that is hot and prone to dust storms. It is neither especially pleasant, nor especially dangerous.", > "This area of ^#ffe21d;dry grassland ^white;is sparsely populated by trees. It is not excessively inhospitable - readings indicate that there is a hare bouncing around.", > "The landing location is located in an area of ^#ffe21d;dry grassland^white;. Trees and shrubs grow sparsely in the heat. A dusty place of wide, flat vistas." > ], > "ocean" : [ > "A planet of deep ^#008aff;oceans^white; and small islands. My readings indicate that aquatic life is abundant and that the islets of the surface are extremely picturesque.", > "An ^#008aff;ocean^white; covered planet spotted with islands and teeming with life. My readings indicate that there is a great deal of activity in the depths of the waters.", > "Floating desert islands pepper the surface of this ^#008aff;ocean^white; planet. An environment of tropical ambiance and aesthetic." > ], > > // (a) durasteel tier 4 > "toxic" : [ > "This planet is ^#06ff00;toxic^white; - the air is putrefied and the oceans are poisonous. ^red;Radiation exceeds safe levels^white; by a factor of thousands.", > "This ^red;highly radioactive^white; planet is a poisonous wilderness inhabited by irradiated lifeforms. It's luminescent surface is ^#06ff00;toxic^white;. An uninviting destination.", > "This is a ^#06ff00;toxic^white; planet replete with ^red;radiation^white;. The noxious oceans are lethally poisonous... May I remind you that other destinations are available." > ], > "jungle" : [ > "The landing site is in a dense ^#12a003;jungle^white;. A menagerie of astounding creatures live amongst the lush flora. It is a shame about the ^red;lethally high levels of radiation^white;.", > "A ^#12a003;jungle^white; landing site densely inhabited by flora and fauna of many kinds. The area is rich with resources but ^red;phenomenally high in radiation^white;.", > "^red;High levels of radiation^white; render this ^#12a003;jungle^white; location an extremely hostile environment and local fauna is similarly unwelcoming." > ], > "alien" : [ > "This is a somewhat risky landing site - ^red;radiation levels are extremely high^white;. However, the ^#7800ff;mutated^white; terrain could be described as darkly whimsical.", > "A landing site characterised by odd flora, aggressive fauna and ^red;sickeningly high levels of radiation^white;. The area's inhabitants are severely ^#7800ff;mutated^white;.", > "The beam location is situated in a ^#7800ff;mutated^white; landscape. The ^red;high levels of radiation^white; create a noxious environment. I advise you to avoid swimming." > ], > > // aegisalt, ferozium, violium tier 5 > "arctic" : [ > "^red;Temperatures at the landing site are dangerously low.^white; You will be beaming onto a small island surrounded by ^#00ffe4;frigid ocean^white;. I strongly advise you to wear a scarf.", > "The beam site is ^red;intensely cold^white;: a tiny island in a ^#00ffe4;frigid ocean^white;. There is a 0.025% chance you will mis-beam into the water, quickly succumbing to the awful chill.", > "A site of ^red;dangerously low temperatures^white;. There are few animals here, and no plant-life at all - just forsaken islands in a ^#00ffe4;frigid ocean^white;." > ], > "tundra" : [ > "A ^#61ffe3;frozen^white; place, formed of ice - the permafrost runs deep here. Snow storms are common, and ^red;temperatures are dangerously low^white;.", > "This ^red;dangerously cold.^white; landing site is ^#61ffe3;frozen^white; solid. High likelihood of accidental self-cryopreservation. Protect yourself from the cold.", > "^red;Temperatures at the beam site are dangerously low^white;. The area is ^#61ffe3;frozen^white;, and inhabited only by flora and fauna that are extremely resistant to the cold. " > ], > > // (a) solarium tier 6 > "volcanic" : [ > "The ^#e11212;volcanic^white; landing site is ^red;catastrophically hot^white;. If you wish, I can calculate your likelihood of immediately bursting into flame upon beam down...", > "^#e11212;Volcanic^white; activity blights this planet and the beam site is in an area of particular virulence. The ^red;temperature is far beyond normally survivable levels^white;.", > "The beam site is situated in ^#e11212;volcanic^white; terrain and is ^red;exquisitely hot^white;. Your interest in this place certainly displays your dauntless tenacity." > ], > "midnight" : [ > "This is a ^#e11212;dark^white; world where the sun never rises. The surface is ^red;dangerously cold^white;. You should prepare yourself both mentally and physically before landing here.", > "This ^#e11212;dark^white; world is ^red;perilously cold^white;. Strange shadowy figures dwell here, hidden in the unremitting night.", > "Scans show that the surface is ^#e11212;dark^white;. In fact, scans show little else on account of all the darkness. However, I surmise that the surface is ^red;dangerously cold^white;." > ], > "scorchedcity" : [ > "The landing location is a ^#b24301;scorched^white; wasteland. The atmospheric ^red;temperature is dangerously high^white;. It is impressively brave of you to consider this destination.", > "The beam site is ^#b24301;scorched^white; and desolate. Little is capable of surviving here as the ^red;temperature is fatally high^white;. People live in the area, but I cannot fathom why.", > "The landing site is ^#b24301;scorched^white; by the ^red;intense heat of the planet's surface^white;. Only a few hardy individuals remain, possibly out of pure habit." > ], > "magma" : [ > "This ^red;dangerously hot^white; planet is chiefly composed of ^#ff1818;magma^white;. Remember, your resilient spirit is admirable, but it is not flame retardant.", > "The planet surface is ^red;dangerously hot^white;. Few creatures eek out an existence amongst the planet's vast oceans of ^#ff1818;magma^white;.", > "The beam site is a tiny island isolated in a sea of ^#ff1818;magma^white;. That you would consider visiting this ^red;searingly hot^white; planet speaks volumes of your fortitude." > ], 125c895,910 < "worldInfoFontSize" : 8, --- > // other > "moon" : [ > "A lonely ^#949493;moon^white; with ^red;no breathable atmosphere^white;; the sky is open to the stars, there is fuel below the ground. Likelihood of feeling lonesome and desolate: 92%.", > "This ^#949493;moon^white; supports no life and has ^red;no atmosphere^white;. However, fuel is abundant here - scans indicate that there is a wealth of it buried below the surface. ", > "This vacant ^#949493;moon^white; has ^red;no breathable atmosphere^white;, but there are caverns below ground that contain vast fuel deposits. In summation: useful, but not enticing." > ], > "asteroids" : [ > "A bare cluster of ^#d7711e;asteroids^white;. Readings indicate ^red;there is no atmosphere^white; or life here. Just endless nothingness, with plenty of space for construction.", > "A lifeless band of ^#d7711e;asteroids^white; ^red;without atmosphere^white;: drifting through space, anchored to a distant star... A nice place to build a house.", > "A clutch of ^#d7711e;asteroids^white; drifting along an elliptical orbit. Readings indicate ^red;there is no atmosphere here^white;. Or anything else for that matter..." > ], > "barren" : [ > "This location is ^#999966;barren^white; and lifeless. Readings show there is nothing here. An empty, empty place.", > "This planet is ^#999966;barren^white;, supporting no life of any kind. There is nothing here at all...", > "Readings indicate that the landing site is of unusual hue. Also, that it is a ^#999966;barren^white; location and would be suitable for construction." > ], 127,138c912 < "threatLevelText" : { < "label" : { < "pos" : [359, 70], < "text" : "Threat", < "size" : 8, < "color" : [140, 164, 228] < }, < "value" : { < "pos" : [359, 59], < "text" : "", < "size" : 8 < } --- > "ancientgateway" : ["An ^#571cff;Ancient Gateway^white; of unknown provenance; an edifice of great power and mystery."] 141c915,929 < "threatLevelToColor" : { --- > "terraformedPlanetDescription" : [ > "This planet has been altered beyond recognition by extensive terraforming.", > "Terraforming has made this planet safe for habitation, though unnatural in appearance.", > "This planet's climate and ecosystems have been dramatically altered by terraforming." > ], > > "worldTypeDescription" : { > "GasGiant" : [ > "A giant ball of gases intermingling with one another. There is simply nothing here to land on.", > "A gas giant. There is no solid substance to this planet, just a collection of swirling gases.", > "Can't land. The crushing pressure and tearing winds of this gas giant would kill you instantly." > ] > }, > > "threatLevelColor" : { 159c947 < "threatLevelToText" : { --- > "threatLevelText" : { 177,322c965,966 < "planetTypeLabel" : { < "pos" : [264, 119], < "text" : "Landing Site Analysis", < "size" : 8, < "color" : [140, 164, 228] < }, < < "planetTypeToDescription" : { < // iron tier 1 < "garden" : [ "^#76fe68;Lush ^white;foothills mark this landing location. Both flora and fauna are abundant here. A beam site of immeasurable safety.", < "The beam site is located in a tranquil area of great bio-diversity. There are resources here that you could use. A ^#76fe68;lush ^white;and pleasant land.", < "Readings indicate the landing site is not unfavourable - the area is safe, and lavish with both flora and fauna. A ^#76fe68;lush ^white;and hospitable place." < ], < // (a) steel tier 2 < "forest" : [ "Densely colonized by trees and other flora, this ^#15ce02;forest ^white;landing site is a hospitable location that supports a diversity of life - potentially including your own.", < "Leafy trees abound in this ^#15ce02;forest ^white;location. The area is hospitable to life, my database indicates that you may encounter woodland creatures.", < "Your beam site for this planet is located in a ^#15ce02;forest^white;. Readings indicate that this wooded area is relatively tranquil." < < ], < "desert" : [ "There is limited flora here, but the location does support life. There is also an abundance of sand. Simply put, it is a ^#e6c801;desert^white;.", < "A ^#e6c801;desert^white; area populated by cacti, as well as various animal life. A relatively safe landing site, so long as you avoid the sandstorms.", < "Sand. Readings indicate sand. Also some cacti... but predominantly sand. Given the available information I speculate that the landing site is situated in a ^#e6c801;desert^white;." < ], < // titanium tier 3 < "snow" : ["This chilly landing site is laden with ^#69f1fd;snow^white;. Sundry trees grow here and various animals also thrive in the cold conditions. An excellent place to make snowballs.", < "The landing location is cold, but not perilously so. ^#69f1fd;Snow^white; covers the area and blizzards are a possibility. A hat and gloves may be advisable.", < "This location is relatively chill, and ^#69f1fd;snow^white; lies thickly on the ground. My sensors indicate that there are critters scampering through the soft blanket of white." < ], < "savannah" : ["The landing site is situated in an area of ^#ffe21d;dry grassland ^white;that is hot and prone to dust storms. It is neither especially pleasant, nor especially dangerous.", < "This area of ^#ffe21d;dry grassland ^white;is sparsely populated by trees. It is not excessively inhospitable - readings indicate that there is a hare bouncing around.", < "The landing location is located in an area of ^#ffe21d;dry grassland^white;. Trees and shrubs grow sparsely in the heat. A dusty place of wide, flat vistas." < ], < "ocean" : ["A planet of deep ^#008aff;oceans^white; and small islands. My readings indicate that aquatic life is abundant and that the islets of the surface are extremely picturesque.", < "An ^#008aff;ocean^white; covered planet spotted with islands and teeming with life. My readings indicate that there is a great deal of activity in the depths of the waters.", < "Floating desert islands pepper the surface of this ^#008aff;ocean^white; planet. An environment of tropical ambiance and aesthetic." < ], < // (a) durasteel tier 4 < "toxic" : ["This planet is ^#06ff00;toxic^white; - the air is putrefied and the oceans are poisonous. ^red;Radiation exceeds safe levels^white; by a factor of thousands.", < "This ^red;highly radioactive^white; planet is a poisonous wilderness inhabited by irradiated lifeforms. It's luminescent surface is ^#06ff00;toxic^white;. An uninviting destination.", < "This is a ^#06ff00;toxic^white; planet replete with ^red;radiation^white;. The noxious oceans are lethally poisonous... May I remind you that other destinations are available." < ], < "jungle" : ["The landing site is in a dense ^#12a003;jungle^white;. A menagerie of astounding creatures live amongst the lush flora. It is a shame about the ^red;lethally high levels of radiation^white;.", < "A ^#12a003;jungle^white; landing site densely inhabited by flora and fauna of many kinds. The area is rich with resources but ^red;phenomenally high in radiation^white;.", < "^red;High levels of radiation^white; render this ^#12a003;jungle^white; location an extremely hostile environment and local fauna is similarly unwelcoming." < ], < "alien" : ["This is a somewhat risky landing site - ^red;radiation levels are extremely high^white;. However, the ^#7800ff;mutated^white; terrain could be described as darkly whimsical.", < "A landing site characterised by odd flora, aggressive fauna and ^red;sickeningly high levels of radiation^white;. The area's inhabitants are severely ^#7800ff;mutated^white;.", < "The beam location is situated in a ^#7800ff;mutated^white; landscape. The ^red;high levels of radiation^white; create a noxious environment. I advise you to avoid swimming." < ], < // aegisalt, ferozium, violium tier 5 < "arctic" : ["^red;Temperatures at the landing site are dangerously low.^white; You will be beaming onto a small island surrounded by ^#00ffe4;frigid ocean^white;. I strongly advise you to wear a scarf.", < "The beam site is ^red;intensely cold^white;: a tiny island in a ^#00ffe4;frigid ocean^white;. There is a 0.025% chance you will mis-beam into the water, quickly succumbing to the awful chill.", < "A site of ^red;dangerously low temperatures^white;. There are few animals here, and no plant-life at all - just forsaken islands in a ^#00ffe4;frigid ocean^white;." < ], < "tundra" : ["A ^#61ffe3;frozen^white; place, formed of ice - the permafrost runs deep here. Snow storms are common, and ^red;temperatures are dangerously low^white;.", < "This ^red;dangerously cold.^white; landing site is ^#61ffe3;frozen^white; solid. High likelihood of accidental self-cryopreservation. Protect yourself from the cold.", < "^red;Temperatures at the beam site are dangerously low^white;. The area is ^#61ffe3;frozen^white;, and inhabited only by flora and fauna that are extremely resistant to the cold. " < < ], < // (a) solarium tier 6 < "volcanic" : ["The ^#e11212;volcanic^white; landing site is ^red;catastrophically hot^white;. If you wish, I can calculate your likelihood of immediately bursting into flame upon beam down...", < "^#e11212;Volcanic^white; activity blights this planet and the beam site is in an area of particular virulence. The ^red;temperature is far beyond normally survivable levels^white;.", < "The beam site is situated in ^#e11212;volcanic^white; terrain and is ^red;exquisitely hot^white;. Your interest in this place certainly displays your dauntless tenacity." < ], < "midnight" : ["This is a ^#e11212;dark^white; world where the sun never rises. The surface is ^red;dangerously cold^white;. You should prepare yourself both mentally and physically before landing here.", < "This ^#e11212;dark^white; world is ^red;perilously cold^white;. Strange shadowy figures dwell here, hidden in the unremitting night.", < "Scans show that the surface is ^#e11212;dark^white;. In fact, scans show little else on account of all the darkness. However, I surmise that the surface is ^red;dangerously cold^white;." < < ], < "scorchedcity" : ["The landing location is a ^#b24301;scorched^white; wasteland. The atmospheric ^red;temperature is dangerously high^white;. It is impressively brave of you to consider this destination.", < "The beam site is ^#b24301;scorched^white; and desolate. Little is capable of surviving here as the ^red;temperature is fatally high^white;. People live in the area, but I cannot fathom why.", < "The landing site is ^#b24301;scorched^white; by the ^red;intense heat of the planet's surface^white;. Only a few hardy individuals remain, possibly out of pure habit." < ], < "magma" : ["This ^red;dangerously hot^white; planet is chiefly composed of ^#ff1818;magma^white;. Remember, your resilient spirit is admirable, but it is not flame retardant.", < "The planet surface is ^red;dangerously hot^white;. Few creatures eek out an existence amongst the planet's vast oceans of ^#ff1818;magma^white;.", < "The beam site is a tiny island isolated in a sea of ^#ff1818;magma^white;. That you would consider visiting this ^red;searingly hot^white; planet speaks volumes of your fortitude." < ], < // other < "moon" : ["A lonely ^#949493;moon^white; with ^red;no breathable atmosphere^white;; the sky is open to the stars, there is fuel below the ground. Likelihood of feeling lonesome and desolate: 92%.", < "This ^#949493;moon^white; supports no life and has ^red;no atmosphere^white;. However, fuel is abundant here - scans indicate that there is a wealth of it buried below the surface. ", < "This vacant ^#949493;moon^white; has ^red;no breathable atmosphere^white;, but there are caverns below ground that contain vast fuel deposits. In summation: useful, but not enticing." < ], < "asteroids" : ["A bare cluster of ^#d7711e;asteroids^white;. Readings indicate ^red;there is no atmosphere^white; or life here. Just endless nothingness, with plenty of space for construction.", < "A lifeless band of ^#d7711e;asteroids^white; ^red;without atmosphere^white;: drifting through space, anchored to a distant star... A nice place to build a house.", < "A clutch of ^#d7711e;asteroids^white; drifting along an elliptical orbit. Readings indicate ^red;there is no atmosphere here^white;. Or anything else for that matter..." < ], < "barren" : ["This location is ^#999966;barren^white; and lifeless. Readings show there is nothing here. An empty, empty place.", < "This planet is ^#999966;barren^white;, supporting no life of any kind. There is nothing here at all...", < "Readings indicate that the landing site is of unusual hue. Also, that it is a ^#999966;barren^white; location and would be suitable for construction." < ], < < "ancientgateway" : ["An ^#571cff;Ancient Gateway^white; of unknown provenance; an edifice of great power and mystery."] < }, < < "terraformedPlanetDescription" : [ < "This planet has been altered beyond recognition by extensive terraforming.", < "Terraforming has made this planet safe for habitation, though unnatural in appearance.", < "This planet's climate and ecosystems have been dramatically altered by terraforming." < ], < < "worldTypeToDescription" : { < "gasgiant" : ["A giant ball of gases intermingling with one another. There is simply nothing here to land on.", < "A gas giant. There is no solid substance to this planet, just a collection of swirling gases.", < "Can't land. The crushing pressure and tearing winds of this gas giant would kill you instantly."] < }, < < "dayLengthText" : { < "label" : { < "pos" : [359, 47], < "text" : "Day Cycle", < "size" : 8, < "color" : [140, 164, 228] < }, < "value" : { < "pos" : [359, 35], < "text" : " Sols", < "size" : 8, < "color" : [ 175, 180, 204 ] < } < }, < < "sizeText" : { < "label" : { < "pos" : [359, 24.5], < "text" : "Planet Size", < "size" : 8, < "color" : [140, 164, 228] < }, < "value" : { < "pos" : [359, 13], < "text" : " Sectors", < "size" : 8, < "color" : [ 175, 180, 204 ] < } < }, < < "oreText" : { < "pos" : [264, 36], < "text" : "Geological Analysis", < "size" : 8, < "color" : [140, 164, 228] < }, < < "displayOres" : [ < { < "oreName" : "copper", --- > "displayOres" : { > "copper" : { 326,327c970 < { < "oreName" : "silver", --- > "silver" : { 331,332c974 < { < "oreName" : "gold", --- > "gold" : { 336,337c978 < { < "oreName" : "iron", --- > "iron" : { 341,342c982 < { < "oreName" : "tungsten", --- > "tungsten" : { 346,347c986 < { < "oreName" : "titanium", --- > "titanium" : { 351,352c990 < { < "oreName" : "durasteel", --- > "durasteel" : { 356,357c994 < { < "oreName" : "ferozium", --- > "ferozium" : { 361,362c998 < { < "oreName" : "aegisalt", --- > "aegisalt" : { 366,367c1002 < { < "oreName" : "violium", --- > "violium" : { 371,372c1006 < { < "oreName" : "solarium", --- > "solarium" : { 376,377c1010 < { < "oreName" : "erchius", --- > "erchius" : { 381,387d1013 < ], < < "weatherText" : { < "pos" : [359, 119], < "text" : "Weather", < "size" : 8, < "color" : [140, 164, 228] 481,498c1107,1178 < "planetIndicatorSize" : 40, < "satelliteIndicatorSize" : 25, < "planetSelectDiameter" : 20, < < "planetaryOrbitScales" : [0.5, 0.6, 0.7, 0.8, 0.9, 1.0], < "planetaryOrbitPositions" : [ < [90, 0], < [75, 30], < [55, 60], < [-55, 60], < [-75, 30], < [-90, 0], < [-75, -30], < [-55, -60], < [-30, -70], < [30, -70], < [55, -60], < [75, -30] --- > "clusterMoons" : { > "none" : "No orbiting bodies", > "singular" : "One orbiting body", > "plural" : "%s orbiting bodies" > }, > > "planetTypeNames" : { > "garden" : "Lush", > "forest" : "Forest", > "desert" : "Desert", > "snow" : "Snowy", > "savannah" : "Savannah", > "ocean" : "Oceanic", > "toxic" : "Toxic", > "jungle" : "Jungle", > "alien" : "Alien", > "arctic" : "Arctic", > "tundra" : "Tundra", > "volcanic" : "Volcanic", > "midnight" : "Midnight", > "scorchedcity" : "Scorched", > "magma" : "Lava", > "moon" : "Lunar", > "asteroids" : "Asteroids", > "barren" : "Barren", > "ancientgateway" : "Gateway" > }, > > "planetTypeColors" : { > "garden" : [0, 200, 0], > "forest" : [50, 150, 50], > "desert" : [255, 255, 0], > "snow" : [255, 255, 255], > "savannah" : [255, 200, 0], > "ocean" : [0, 0, 255], > "toxic" : [0, 255, 0], > "jungle" : [200, 50, 200], > "alien" : [255, 0, 255], > "arctic" : [200, 200, 255], > "tundra" : [180, 180, 180], > "volcanic" : [150, 0, 0], > "midnight" : [150, 150, 150], > "scorchedcity" : [200, 150, 150], > "magma" : [255, 0, 0], > "moon" : [150, 150, 150], > "asteroids" : [150, 150, 150], > "barren" : [150, 150, 150], > "ancientgateway" : [255, 255, 255] > }, > > "starTypeColors" : { > "default" : [255, 255, 255, 255], > "whitestar" : [255, 255, 255, 255], > "bluestar" : [100, 100, 255, 255], > "yellowstar" : [255, 255, 50, 255], > "orangestar" : [255, 150, 50, 255], > "redstar" : [255, 50, 50, 255] > }, > "starTypeNames" : { > "default" : "Mysterious Star", > "whitestar" : "Gentle Star", > "orangestar" : "Temperate Star", > "yellowstar" : "Radioactive Star", > "bluestar" : "Frozen Star", > "redstar" : "Fiery Star" > }, > > "topLeftButtons" : [ > "showBookmarkList", > "goToShip", > "goToQuest", > "showCoordinates" 499a1180,1186 > "topLeftButtonHeight" : 13, > "topLeftSpacing" : 2, > // frames with associated button > "topLeftFrameButtons" : { > "bookmarksFrame" : "showBookmarkList", > "coordinatesFrame" : "showCoordinates" > }, 501,560c1188,1191 < "processingAnimation" : { < "frames" : [ < [6, "/interface/cockpit/processing.png" ] < ], < "duration" : 0.1 < }, < < "ftlOfflineText" : { < "pos" : [4, 2], < "text" : "FTL DRIVE OFFLINE", < "size" : 10, < "color" : [ 255, 0, 0 ] < }, < < "ftlAnimation" : { < "frames" : [ < [36, "/interface/cockpit/consoleanim/consolejump1.png" ], < [36, "/interface/cockpit/consoleanim/consolejump2.png" ], < [36, "/interface/cockpit/consoleanim/consolejump3.png" ], < [36, "/interface/cockpit/consoleanim/consolejump4.png" ], < [36, "/interface/cockpit/consoleanim/consolejump5.png" ], < [20, "/interface/cockpit/consoleanim/consolejump6.png" ] < ], < < "disembark" : [0, 85], < "disembarkLoop" : [86, 90], < "disembarkTime" : 6, < "disembarkLoopTime" : 0.2, < < "speedUp" : [91, 125], < "speedUpLoop" : [126, 130], < "speedUpTime" : 2.5, < "speedUpLoopTime" : 0.2, < < "jump" : [131, 140], < "jumpLoop" : [141, 145], < "jumpTime" : 0.5, < "jumpLoopTime" : 0.2, < < "speedDown" : [146, 163], < "speedDownLoop" : [164, 168], < "speedDownTime" : 1.5, < "speedDownLoopTime" : 0.2, < < "arrive" : [169, 198], < "arriveLoop" : [199, 199], < "arriveTime" : 2, < "arriveLoopTime" : 0.5, < < "textFrames" : [ < [70, "/interface/cockpit/textanim/textscroll1.png" ], < [70, "/interface/cockpit/textanim/textscroll2.png" ], < [70, "/interface/cockpit/textanim/textscroll3.png" ], < [70, "/interface/cockpit/textanim/textscroll4.png" ] < ], < "textRange" : [0, 14], < "textRangeLoop" : [15, 279], < "textTime" : 0.25, < "textLoopTime" : 4.41666666, < "textWaitFrames" : 47 --- > "bookmarks" : { > "newTitle" : "NEW BOOKMARK", > "editTitle" : "EDIT BOOKMARK", > "icon" : "/interface/bookmarks/icons/%s.png" 563,700c1194,1220 < "guiConfig" : { < "background" : { < "zlevel" : 0, < "type" : "background", < "fileHeader" : "/interface/cockpit/consoleheader.png", < "fileBody" : "/interface/cockpit/consolebody.png" < }, < "consoleScreenCanvas" : { < "zlevel" : 1, < "type" : "canvas", < "rect" : [1, 79, 395, 233], < "captureMouseEvents" : true < }, < "planetTypeDescription" : { < "type" : "label", < "position" : [205, 193], < "wrapWidth" : 120, < "zlevel" : 5, < "hAnchor" : "left", < "vAnchor" : "top", < "value" : "???" < }, < "weatherIconLayout" : { < "type" : "layout", < "layoutType" : "flow", < "rect" : [ 330, 158, 387, 196 ], < "spacing" : [ 4, 4 ], < "zlevel" : 5 < }, < "oreIconLayout" : { < "type" : "layout", < "layoutType" : "flow", < "rect" : [ 201, 100, 380, 113 ], < "spacing" : [2, 0], < "zlevel" : 5 < }, < "processingImage" : { < "zlevel" : 5, < "type" : "image", < "centered" : true, < "file" : "/interface/cockpit/processing.png:0", < "position" : [205, 155] < }, < "showBookmarkList" : { < "zlevel" : 3, < "type" : "button", < "base" : "/interface/cockpit/bookmarksup.png", < "hover" : "/interface/cockpit/bookmarksover.png", < "pressed" : "/interface/cockpit/bookmarksup.png", < "position" : [-3, 42], < "pressedOffset" : [0, 0], < "caption" : "BOOKMARKS", < "fontColor" : [23, 178, 0], < "fontColorDisabled" : [35, 110, 14], < "textAlign" : "left", < "textOffset" : [12, 0] < }, < "addBookmark" : { < "zlevel" : 3, < "type" : "button", < "base" : "/interface/cockpit/addbookmarkup.png", < "hover" : "/interface/cockpit/addbookmarkover.png", < "pressed" : "/interface/cockpit/addbookmarkup.png", < "position" : [75, 42], < "pressedOffset" : [0, 0], < "caption" : "ADD / EDIT BOOKMARK", < "fontColor" : [23, 178, 0], < "fontColorDisabled" : [35, 110, 14], < "textAlign" : "left", < "textOffset" : [5, 0] < }, < "goToMyShip" : { < "zlevel" : 3, < "type" : "button", < "base" : "/interface/cockpit/myshipup.png", < "hover" : "/interface/cockpit/myshipmover.png", < "pressed" : "/interface/cockpit/myshipup.png", < "position" : [227, 25], < "pressedOffset" : [0, 0], < "caption" : "SHOW SHIP LOCATION", < "fontColor" : [23, 178, 0], < "fontColorDisabled" : [35, 110, 14], < "textAlign" : "left", < "textOffset" : [12, 0] < }, < "goToQuest" : { < "zlevel" : 3, < "type" : "button", < "base" : "/interface/cockpit/myshipup.png", < "hover" : "/interface/cockpit/myshipmover.png", < "pressed" : "/interface/cockpit/myshipup.png", < "position" : [-3, 25], < "pressedOffset" : [0, 0], < "caption" : "SHOW QUEST LOCATION", < "fontColor" : [23, 178, 0], < "fontColorDisabled" : [35, 110, 14], < "textAlign" : "left", < "textOffset" : [12, 0] < }, < "close" : { < "zlevel" : 3, < "type" : "button", < "base" : "/interface/x.png", < "hover" : "/interface/xhover.png", < "pressed" : "/interface/xpress.png", < "pressedOffset" : [0, 0], < "position" : [378, 239] < }, < "windowtitle" : { < "type" : "title", < "title" : " Navigation Console", < "subtitle" : "^#b9b5b2; Select your destination", < "position" : [74, 260], < "icon" : { < "type" : "image", < "file" : "/interface/cockpit/cockpit.png", < "position" : [0, 0], < "zlevel" : -1 < } < }, < "initiateJump" : { < "zlevel" : 3, < "type" : "button", < "base" : "/interface/cockpit/initiatejumpup.png", < "hover" : "/interface/cockpit/initiatejumpover.png", < "pressed" : "/interface/cockpit/initiatejumpdown.png", < "position" : [170, 28], < "pressedOffset" : [0, 0] < }, < "xCoord" : { < "zlevel" : 3, < "type" : "textbox", < "regex" : "-?\\d{0,9}", < "position" : [249, 48], < "textAlign" : "left", < "fontSize" : 8, < "maxWidth" : 64, < "color" : [2555, 0, 0] --- > "planetSmallImage" : "/celestial/system/planet_large.png", > > "jumpFuelCost" : 100, > "jumpDialog" : { > "valid" : "FTL travel will consume ^green;100 fuel^reset;.\nConfirm to proceed.", > "invalid" : "FTL travel requires ^red;100 fuel^reset;.\n Not enough fuel to proceed." > }, > > "zoomOutCursor" : "/cursors/zoomout.cursor", > > "cockpitViewSettings" : { > "tweenInTime": 1.0, > "tweenOutTime": 1.0, > "warpDistance": 1000, > "swirlAngle" : 15, > > "playerWarpTime": 1.0, > "playerWarpDistance": 1000, > > // screen radius to clamp system and planet views to > "viewRadius": 130, > > // allowed scale range for system camera for each screen > "scale": { > "universe": [0.003, 0.003], > "system": [0.4, 1.0], > "planet": [5.0, 13.0] 702,721c1222,1227 < "yCoord" : { < "zlevel" : 3, < "type" : "textbox", < "regex" : "-?\\d{0,9}", < "position" : [327, 48], < "textAlign" : "left", < "fontSize" : 8, < "maxWidth" : 64, < "color" : [255, 0, 0] < }, < "fuelGauge" : { < "zlevel" : 6, < "type" : "fuelGauge", < "position" : [139, 60] < }, < "numpadFront" : { < "zlevel" : 4, < "type" : "image", < "file" : "/interface/cockpit/numpadextension.png", < "position" : [162, 77] --- > "universeSystemRatio": 1000.0, // universe scale relative to system scale > > "bgScale": { > "universe": 1.0, > "system": 1.5, > "planet": 1.75 723,737c1229,1236 < "fuelIcon" : { < "zlevel" : 3, < "type" : "image", < "scale" : 0.5, < "file" : "/interface/cockpit/fuelcosticon.png", < "position" : [5, 80] < }, < "fuelCost" : { < "zlevel" : 4, < "fontSize" : 8, < "type" : "label", < "position" : [20, 80], < "hAnchor" : "left", < "color" : [65, 218, 27], < "value" : "0000" --- > > "positionMarkerImage" : "/interface/cockpit/positionmarker.png", > "positionMarkerOffset": [0, 6], > > "selectMarkerAnimation": { > "image" : "/interface/cockpit/reticle.png:%s", > "cycle": 0.1, > "frames": 5 739,747c1238,1242 < "zoomOutButton" : { < "zlevel" : 3, < "type" : "button", < "callback" : "zoomOut", < "base" : "/interface/cockpit/zoomout.png", < "hover" : "/interface/cockpit/zoomouthover.png", < "pressed" : "/interface/cockpit/zoomout.png", < "position" : [5, 210], < "pressedOffset" : [0, 0] --- > > "planetInfo": { > "expandTime": 0.1, > "offset": [50, 0], > "minOffset": 10 749,757c1244,1266 < "panLeftButton" : { < "zlevel" : 3, < "type" : "button", < "callback" : "null", < "base" : "/interface/cockpit/arrow_Left.png", < "hover" : "/interface/cockpit/arrow_Left.png", < "pressed" : "/interface/cockpit/arrow_Left.png", < "position" : [0, 148], < "pressedOffset" : [2, -2] --- > > "backgrounds" : [ > "/interface/cockpit/nebula1.png", > "/interface/cockpit/bgstars.png" > ], > "backgroundSize" : [1024, 1024], > "backgroundColor" : [175, 175, 175], > > "hoverImage" : "/interface/cockpit/reticle.png:1", > "destinationMarkerColor" : [0, 255, 0], > > "orbitColor" : [50, 50, 50, 255], > "planetImage" : "/interface/cockpit/planets/%s.png", // string formatted with planet type > > "playerShipIcon" : "/celestial/system/ships/playership.png", > "playerDestinationOrbitColor" : [0, 150, 0, 255], > "playerOrbitColor" : [50, 75, 50, 255], > > "constellationLineColor" : [150, 150, 150, 255], > "travelLine" : { > "color" : [255, 255, 255, 255], > "dash" : 4.0, > "gap" : 2.0 759,767c1268,1271 < "panRightButton" : { < "zlevel" : 3, < "type" : "button", < "callback" : "null", < "base" : "/interface/cockpit/arrow_Right.png", < "hover" : "/interface/cockpit/arrow_Right.png", < "pressed" : "/interface/cockpit/arrow_Right.png", < "position" : [380, 148], < "pressedOffset" : [2, -2] --- > > "sounds" : { > "select" : "/sfx/interface/nav_examine_on.ogg", > "deselect" : "/sfx/interface/nav_examine_off.ogg" 769,777c1273,1287 < "panUpButton" : { < "zlevel" : 3, < "type" : "button", < "callback" : "null", < "base" : "/interface/cockpit/arrow_Up.png", < "hover" : "/interface/cockpit/arrow_Up.png", < "pressed" : "/interface/cockpit/arrow_Up.png", < "position" : [190, 218], < "pressedOffset" : [2, -2] --- > > "asteroidImages" : [ > "/interface/cockpit/planets/asteroids_small1.png", > "/interface/cockpit/planets/asteroids_small2.png", > "/interface/cockpit/planets/asteroids_small3.png", > "/interface/cockpit/planets/asteroids_small4.png", > "/interface/cockpit/planets/asteroids_small5.png", > "/interface/cockpit/planets/asteroids_small6.png", > "/interface/cockpit/planets/asteroids_small7.png", > "/interface/cockpit/planets/asteroids_small8.png" > ], > > "asteroidBelt" : { > "density" : 0.5, > "distanceOffset" : 2.0 779,787c1289,1291 < "panDownButton" : { < "zlevel" : 3, < "type" : "button", < "callback" : "null", < "base" : "/interface/cockpit/arrow_Down.png", < "hover" : "/interface/cockpit/arrow_Down.png", < "pressed" : "/interface/cockpit/arrow_Down.png", < "position" : [190, 84], < "pressedOffset" : [2, -2] --- > > "playerShipParameters" : { > "icon" : "/celestial/system/ships/playership.png" 789,930c1293,1305 < "bookmarkListFrame" : { < "zlevel" : 10, < "type" : "button", < "callback" : "hideBookmarkList", < "base" : "/interface/cockpit/bookmarklistframe.png", < "hover" : "/interface/cockpit/bookmarklistframe.png", < "pressed" : "/interface/cockpit/bookmarklistframe.png", < "position" : [-39, -22], < "pressedOffset" : [0, 0] < }, < "bookmarkListLabel" : { < "zlevel" : 11, < "type" : "label", < "color" : [23, 178, 0], < "value" : "^shadow;BOOKMARKS", < "position" : [9, 47] < }, < "bookmarkList" : { < "zlevel" : 11, < "type" : "scrollArea", < "rect" : [7, 59, 189, 187], < "buttons" : { < "horizontal" : { < "forward" : { < "base" : "/interface/bookmarks/scrollarea/harrow-forward.png", < "hover" : "/interface/bookmarks/scrollarea/harrow-forwardhover.png", < "pressed" : "" < }, < "backward" : { < "base" : "/interface/bookmarks/scrollarea/harrow-backward.png", < "hover" : "/interface/bookmarks/scrollarea/harrow-backwardhover.png", < "pressed" : "" < } < }, < "vertical" : { < "forward" : { < "base" : "/interface/bookmarks/scrollarea/varrow-forward.png", < "hover" : "/interface/bookmarks/scrollarea/varrow-forwardhover.png", < "pressed" : "" < }, < "backward" : { < "base" : "/interface/bookmarks/scrollarea/varrow-backward.png", < "hover" : "/interface/bookmarks/scrollarea/varrow-backwardhover.png", < "pressed" : "" < } < } < }, < "thumbs" : { < "horizontal" : { < "base" : { < "begin" : "/interface/bookmarks/scrollarea/hthumb-begin.png", < "end" : "/interface/bookmarks/scrollarea/hthumb-end.png", < "inner" : "/interface/bookmarks/scrollarea/hthumb-inner.png" < }, < "hover" : { < "begin" : "/interface/bookmarks/scrollarea/hthumb-beginhover.png", < "end" : "/interface/bookmarks/scrollarea/hthumb-endhover.png", < "inner" : "/interface/bookmarks/scrollarea/hthumb-innerhover.png" < }, < "pressed" : { < "begin" : "/interface/bookmarks/scrollarea/hthumb-beginhover.png", < "end" : "/interface/bookmarks/scrollarea/hthumb-endhover.png", < "inner" : "/interface/bookmarks/scrollarea/hthumb-innerhover.png" < } < }, < "vertical" : { < "base" : { < "begin" : "/interface/bookmarks/scrollarea/vthumb-begin.png", < "end" : "/interface/bookmarks/scrollarea/vthumb-end.png", < "inner" : "/interface/bookmarks/scrollarea/vthumb-inner.png" < }, < "hover" : { < "begin" : "/interface/bookmarks/scrollarea/vthumb-beginhover.png", < "end" : "/interface/bookmarks/scrollarea/vthumb-endhover.png", < "inner" : "/interface/bookmarks/scrollarea/vthumb-innerhover.png" < }, < "pressed" : { < "begin" : "/interface/bookmarks/scrollarea/vthumb-beginhover.png", < "end" : "/interface/bookmarks/scrollarea/vthumb-endhover.png", < "inner" : "/interface/bookmarks/scrollarea/vthumb-innerhover.png" < } < } < }, < "children" : { < "bookmarkItemList" : { < "type" : "list", < "callback" : "null", < "schema" : { < "selectedBG" : "/interface/bookmarks/list/selected.png", < "unselectedBG" : "/interface/bookmarks/list/unselected.png", < "spacing" : [0, 2], < "memberSize" : [170, 22], < "listTemplate" : { < "itemButton" : { < "type" : "button", < "callback" : "selectBookmark", < "size" : [170, 22], < "position" : [0, 0], < "pressedOffset" : [0, 0], < "base" : "/interface/bookmarks/list/unselected.png", < "hover" : "/interface/bookmarks/list/selected.png", < "pressed" : "/interface/bookmarks/list/unselected.png", < "zlevel" : -1 < }, < "icon" : { < "type" : "image", < "position" : [3, 3], < "file" : "/interface/bookmarks/icons/barren.png", < "mouseTransparent" : true < }, < "name" : { < "type" : "label", < "position" : [23, 11], < "hAnchor" : "left", < "width" : 120, < "value" : "Bookmark Name", < "color" : [255, 255, 255], < "mouseTransparent" : true < }, < "planetName" : { < "type" : "label", < "position" : [23, 3], < "hAnchor" : "left", < "width" : 120, < "value" : "Planet Name", < "color" : [180, 180, 180], < "mouseTransparent" : true < }, < "editButton" : { < "type" : "button", < "callback" : "editBookmark", < "position" : [151, 3], < "pressedOffset" : [0, 0], < "base" : "/interface/bookmarks/list/editup.png", < "hover" : "/interface/bookmarks/list/edithover.png", < "pressed" : "/interface/bookmarks/list/editup.png" < } < } < } < } < } < } --- > > "visitedTempObjectColor" : [150, 150, 150] > }, > > "sounds" : { > "open" : "/sfx/interface/nav_computer_on.ogg", > "hover" : "/sfx/interface/starving1.ogg", > "startTravel" : "/sfx/interface/keypad_press.ogg", > "failTravel" : "/sfx/interface/nav_examine_off.ogg", > "jump" : "/sfx/interface/warp.ogg", > "zoom" : "/sfx/interface/nav_scanning_loop.ogg", > "pan" : "/sfx/interface/nav_panning_loop.ogg", > "typing" : "/sfx/interface/keypad_press.ogg" interface\confirmation\teleportconfirmation.config 123c123 < "message" : "\n\nAre you ready for me to send you to the Penguin Arms Testing Site to fight the Shockhopper MK I?\n^red;You'll want to have very good equipment for this.", --- > "message" : "\n\nAre you ready for me to send you to my ^orange;arms testing site^white; to fight my Shockhopper MK I?\n^red;You'll want to have very good equipment for this.", 127c127 < "portrait" : [ {"image" : "/objects/outpost/penguinweaponshop/penguinshopportrait.png"} ] --- > "portrait" : [ {"image" : "/quests/outpost/penguinscientistportrait.png"} ] 130c130,160 < "name" : "Penguin" --- > "name" : "Dr. Akaggy" > } > }, > "mechunlock" : { > "paneLayout" : "/interface/windowconfig/portraitconfirmation.config:paneLayout", > "icon" : "/interface/warping/icon.png", > "title" : "Teleport Confirmation", > "subtitle" : "Mech Test Course", > "message" : "\n\nAre you ready for me to deploy you to my ^orange;mech test course^white;? I built it in an abandoned freighter I stumbled upon.", > "okCaption" : "Ready", > "cancelCaption" : "Not now", > "images" : { > "portrait" : [ {"image" : "/quests/outpost/penguinscientistportrait.png"} ] > }, > "labels" : { > "name" : "Dr. Akaggy" > } > }, > "mechupgrade2" : { > "paneLayout" : "/interface/windowconfig/portraitconfirmation.config:paneLayout", > "icon" : "/interface/warping/icon.png", > "title" : "Teleport Confirmation", > "subtitle" : "Advanced Mech Test Course", > "message" : "\n\nAre you ready for me to send you to my ^orange;advanced mech test course^white;? \n^red;You might want to assemble a strong enough mech before you go.", > "okCaption" : "Ready", > "cancelCaption" : "Not now", > "images" : { > "portrait" : [ {"image" : "/quests/outpost/penguinscientistportrait.png"} ] > }, > "labels" : { > "name" : "Dr. Akaggy" interface\easel\signstoregui.config 46c46,55 < "scriptCanvas" : "scriptCanvas" --- > > "canvasClickCallbacks" : { > "scriptCanvas" : "canvasClickEvent" > }, > "canvasKeyCallbacks" : { > "scriptCanvas" : "canvasKeyEvent" > }, > > "scriptWidgetCallbacks" : [ > ] interface\easel\signstoregui.lua 5a6,9 > self.canvas = widget.bindCanvas("scriptCanvas") > > widget.focus("scriptCanvas") > 9c13 < uniqueEaselIdentifier = "Easel@" .. world.entityPosition(console.sourceEntity())[1] .. world.entityPosition(console.sourceEntity())[2] --- > uniqueEaselIdentifier = "Easel@" .. world.entityPosition(pane.sourceEntity())[1] .. world.entityPosition(pane.sourceEntity())[2] 124c128 < dropSpot = world.entityPosition(console.sourceEntity()) --- > dropSpot = world.entityPosition(pane.sourceEntity()) 128c132 < local matchingCabinetList = world.objectQuery({world.entityPosition(console.sourceEntity())[1]+7,world.entityPosition(console.sourceEntity())[2]},1) --- > local matchingCabinetList = world.objectQuery({world.entityPosition(pane.sourceEntity())[1]+7,world.entityPosition(pane.sourceEntity())[2]},1) 132c136 < if self.matchingCabinet == nil then console.dismiss() end --- > if self.matchingCabinet == nil then pane.dismiss() end 151c155 < world.sendEntityMessage(console.sourceEntity(), "storeData", storage, templates) --- > world.sendEntityMessage(pane.sourceEntity(), "storeData", storage, templates) 155c159,161 < local toPointer = console.canvasMousePosition() --- > self.canvas:clear() > > local toPointer = self.canvas:mousePosition() 209c215 < world.sendEntityMessage(console.sourceEntity(), "storeData", storage, templates) --- > world.sendEntityMessage(pane.sourceEntity(), "storeData", storage, templates) 369,384c375,390 < console.canvasDrawImage("/interface/easel/staticpanels.png", buttonPosition("S:mainStatics"), 1) < --console.canvasDrawImage("/interface/easel/icongrab.png:"..storage.buttonStates["iconGrab"],buttonPosition("iconGrab"), 1) < console.canvasDrawImage("/interface/easel/signbacking.png:"..storage.backingTypes[storage.backingTypesIndex], buttonPosition("pixelPress"), 1.5) < console.canvasDrawImage("/interface/easel/signframe.png:"..storage.frameTypes[storage.frameTypesIndex][1], buttonPosition("framePress"), 1.5) < console.canvasDrawImage("/interface/easel/minisignbacking.png:"..storage.backingTypes[storage.backingTypesIndex], buttonPosition("S:miniBacking"), 1) --(20,6.5) < console.canvasDrawImage("/interface/easel/scrollleft.png:"..storage.buttonStates["backingLeft"], buttonPosition("backingLeft"), 1) < console.canvasDrawImage("/interface/easel/scrollright.png:"..storage.buttonStates["backingRight"], buttonPosition("backingRight"), 1) < console.canvasDrawImage("/interface/easel/scrollleft.png:"..storage.buttonStates["frameLeft"], buttonPosition("frameLeft"), 1) < console.canvasDrawImage("/interface/easel/scrollright.png:"..storage.buttonStates["frameRight"], buttonPosition("frameRight"), 1) < console.canvasDrawImage("/interface/easel/delete.png:"..storage.buttonStates["frameDelete"], buttonPosition("frameDelete"), 1) < console.canvasDrawImage("/interface/easel/add.png:"..storage.buttonStates["frameAdd"], buttonPosition("frameAdd"), 1) < console.canvasDrawImage("/interface/easel/shiftleftright.png:right"..storage.buttonStates["shiftRight"], buttonPosition("shiftRight"), 1) < console.canvasDrawImage("/interface/easel/shiftleftright.png:left"..storage.buttonStates["shiftLeft"], buttonPosition("shiftLeft"), 1) < console.canvasDrawImage("/interface/easel/shiftupdown.png:up"..storage.buttonStates["shiftUp"], buttonPosition("shiftUp"), 1) < console.canvasDrawImage("/interface/easel/shiftupdown.png:down"..storage.buttonStates["shiftDown"], buttonPosition("shiftDown"), 1) < console.canvasDrawImage("/interface/easel/wiredicon.png:"..storage.buttonStates["isWired"], buttonPosition("isWired"), 1) --- > self.canvas:drawImage("/interface/easel/staticpanels.png", buttonPosition("S:mainStatics"), 1) > --self.canvas:drawImage("/interface/easel/icongrab.png:"..storage.buttonStates["iconGrab"],buttonPosition("iconGrab"), 1) > self.canvas:drawImage("/interface/easel/signbacking.png:"..storage.backingTypes[storage.backingTypesIndex], buttonPosition("pixelPress"), 1.5) > self.canvas:drawImage("/interface/easel/signframe.png:"..storage.frameTypes[storage.frameTypesIndex][1], buttonPosition("framePress"), 1.5) > self.canvas:drawImage("/interface/easel/minisignbacking.png:"..storage.backingTypes[storage.backingTypesIndex], buttonPosition("S:miniBacking"), 1) --(20,6.5) > self.canvas:drawImage("/interface/easel/scrollleft.png:"..storage.buttonStates["backingLeft"], buttonPosition("backingLeft"), 1) > self.canvas:drawImage("/interface/easel/scrollright.png:"..storage.buttonStates["backingRight"], buttonPosition("backingRight"), 1) > self.canvas:drawImage("/interface/easel/scrollleft.png:"..storage.buttonStates["frameLeft"], buttonPosition("frameLeft"), 1) > self.canvas:drawImage("/interface/easel/scrollright.png:"..storage.buttonStates["frameRight"], buttonPosition("frameRight"), 1) > self.canvas:drawImage("/interface/easel/delete.png:"..storage.buttonStates["frameDelete"], buttonPosition("frameDelete"), 1) > self.canvas:drawImage("/interface/easel/add.png:"..storage.buttonStates["frameAdd"], buttonPosition("frameAdd"), 1) > self.canvas:drawImage("/interface/easel/shiftleftright.png:right"..storage.buttonStates["shiftRight"], buttonPosition("shiftRight"), 1) > self.canvas:drawImage("/interface/easel/shiftleftright.png:left"..storage.buttonStates["shiftLeft"], buttonPosition("shiftLeft"), 1) > self.canvas:drawImage("/interface/easel/shiftupdown.png:up"..storage.buttonStates["shiftUp"], buttonPosition("shiftUp"), 1) > self.canvas:drawImage("/interface/easel/shiftupdown.png:down"..storage.buttonStates["shiftDown"], buttonPosition("shiftDown"), 1) > self.canvas:drawImage("/interface/easel/wiredicon.png:"..storage.buttonStates["isWired"], buttonPosition("isWired"), 1) 388,389c394,395 < console.canvasDrawRect(button4Position("S:lightColor"), convertRGBAtoArray(storage.lightData)) < console.canvasDrawImage("/interface/easel/lightbutton.png:"..storage.buttonStates["lightSelect"], buttonPosition("lightSelect"), 1) --- > self.canvas:drawRect(button4Position("S:lightColor"), convertRGBAtoArray(storage.lightData)) > self.canvas:drawImage("/interface/easel/lightbutton.png:"..storage.buttonStates["lightSelect"], buttonPosition("lightSelect"), 1) 391c397 < console.canvasDrawImage("/interface/easel/lightbutton.png:"..storage.buttonStates["lightSelect"], buttonPosition("lightSelect"), 1) --- > self.canvas:drawImage("/interface/easel/lightbutton.png:"..storage.buttonStates["lightSelect"], buttonPosition("lightSelect"), 1) 397,400c403,406 < console.canvasDrawImage("/interface/easel/numbers.png:"..digit11,buttonPosition("S:digit11"), 1) < console.canvasDrawImage("/interface/easel/numbers.png:"..digit12, buttonPosition("S:digit12"), 1) < console.canvasDrawImage("/interface/easel/numbers.png:"..digit21,buttonPosition("S:digit21"), 1) < console.canvasDrawImage("/interface/easel/numbers.png:"..digit22, buttonPosition("S:digit22"), 1) --(-1,3) --- > self.canvas:drawImage("/interface/easel/numbers.png:"..digit11,buttonPosition("S:digit11"), 1) > self.canvas:drawImage("/interface/easel/numbers.png:"..digit12, buttonPosition("S:digit12"), 1) > self.canvas:drawImage("/interface/easel/numbers.png:"..digit21,buttonPosition("S:digit21"), 1) > self.canvas:drawImage("/interface/easel/numbers.png:"..digit22, buttonPosition("S:digit22"), 1) --(-1,3) 404,406c410,415 < console.canvasDrawRect( < {buttonPosition("pixelPress")[1]-6+6*x, buttonPosition("pixelPress")[2]-6+6*y, buttonPosition("pixelPress")[1]+6*x, buttonPosition("pixelPress")[2]+6*y}, < convertRGBAtoArray(storage.signPixels[storage.currentFrame][x][y]) ) --- > self.canvas:drawRect({ > buttonPosition("pixelPress")[1]-6+6*x, > buttonPosition("pixelPress")[2]-6+6*y, > buttonPosition("pixelPress")[1]+6*x, > buttonPosition("pixelPress")[2]+6*y}, > convertRGBAtoArray(storage.signPixels[storage.currentFrame][x][y])) 413,416c422,425 < console.canvasDrawImage("/interface/easel/new.png:"..storage.buttonStates["dumpPress"], buttonPosition("dumpPress"), 1) --(4,8) < console.canvasDrawImage("/interface/easel/clear.png:"..storage.buttonStates["clearPress"], buttonPosition("clearPress"), 1) --(4,8) < console.canvasDrawImage("/interface/easel/print.png:"..storage.buttonStates["printPress"], buttonPosition("printPress"), 1) --(8,8) < console.canvasDrawImage("/interface/easel/undo.png:"..storage.buttonStates["undoPress"], buttonPosition("undoPress"), 1) --(12,8) --- > self.canvas:drawImage("/interface/easel/new.png:"..storage.buttonStates["dumpPress"], buttonPosition("dumpPress"), 1) --(4,8) > self.canvas:drawImage("/interface/easel/clear.png:"..storage.buttonStates["clearPress"], buttonPosition("clearPress"), 1) --(4,8) > self.canvas:drawImage("/interface/easel/print.png:"..storage.buttonStates["printPress"], buttonPosition("printPress"), 1) --(8,8) > self.canvas:drawImage("/interface/easel/undo.png:"..storage.buttonStates["undoPress"], buttonPosition("undoPress"), 1) --(12,8) 418,419c427,428 < console.canvasDrawImage("/interface/easel/scaninput.png:"..storage.buttonStates["templateSlotScanButton"], buttonPosition("templateSlotScanButton"), 1) < console.canvasDrawImage("/interface/easel/iconthing.png", buttonPosition("templateSlotCopy"), 1) --- > self.canvas:drawImage("/interface/easel/scaninput.png:"..storage.buttonStates["templateSlotScanButton"], buttonPosition("templateSlotScanButton"), 1) > self.canvas:drawImage("/interface/easel/iconthing.png", buttonPosition("templateSlotCopy"), 1) 421c430 < console.canvasDrawImage("/objects/outpost/customsign/"..templates["fromContainer"].currentIcon, vec2.add(buttonPosition("templateSlotCopy"), {1,0}), 1) --- > self.canvas:drawImage("/objects/outpost/customsign/"..templates["fromContainer"].currentIcon, vec2.add(buttonPosition("templateSlotCopy"), {1,0}), 1) 424c433 < console.canvasDrawRect(button4Position("templateSlotCopy"), {255,255,255,70}) end --- > self.canvas:drawRect(button4Position("templateSlotCopy"), {255,255,255,70}) end 426c435 < console.canvasDrawText(self.toolTip, {position=buttonPosition("S:toolTip")}, 8, {210,210,210,210}) --- > self.canvas:drawText(self.toolTip, {position=buttonPosition("S:toolTip")}, 8, {210,210,210,210}) 431,434c440,443 < console.canvasDrawImage("/interface/easel/staticcolor.png", buttonPosition("S:colorStatics"), 1) --(12,8) < console.canvasDrawImage("/interface/easel/pickericon.png:"..storage.buttonStates["pickToggle"], buttonPosition("pickToggle"), 1) --(19.5,3) < console.canvasDrawImage("/interface/easel/fillicon.png:"..storage.buttonStates["fillToggle"], buttonPosition("fillToggle"), 1) --(21,3) < console.canvasDrawRect(button4Position("S:colorDisplay"),convertRGBAtoArray(storage.paintColor)) --- > self.canvas:drawImage("/interface/easel/staticcolor.png", buttonPosition("S:colorStatics"), 1) --(12,8) > self.canvas:drawImage("/interface/easel/pickericon.png:"..storage.buttonStates["pickToggle"], buttonPosition("pickToggle"), 1) --(19.5,3) > self.canvas:drawImage("/interface/easel/fillicon.png:"..storage.buttonStates["fillToggle"], buttonPosition("fillToggle"), 1) --(21,3) > self.canvas:drawRect(button4Position("S:colorDisplay"),convertRGBAtoArray(storage.paintColor)) 441,443c450,452 < console.canvasDrawImage("/interface/easel/errorpane.png", buttonPosition("S:errorWindow"), 1) < console.canvasDrawText(self.thrownError[2], {position=buttonPosition("S:errorPrompt1")},20,{220,0,0,255}) < console.canvasDrawText(self.thrownError[3], {position=buttonPosition("S:errorPrompt2")},20,{220,0,0,255}) --- > self.canvas:drawImage("/interface/easel/errorpane.png", buttonPosition("S:errorWindow"), 1) > self.canvas:drawText(self.thrownError[2], {position=buttonPosition("S:errorPrompt1")},20,{220,0,0,255}) > self.canvas:drawText(self.thrownError[3], {position=buttonPosition("S:errorPrompt2")},20,{220,0,0,255}) 448,449c457,458 < console.canvasDrawImage("/interface/easel/spectrumchart_window.png", buttonPosition("S:spectrumWindow"), 1) < console.canvasDrawImage("/interface/easel/spectrumchart.png", buttonPosition("spectrumPress"), 1) --- > self.canvas:drawImage("/interface/easel/spectrumchart_window.png", buttonPosition("S:spectrumWindow"), 1) > self.canvas:drawImage("/interface/easel/spectrumchart.png", buttonPosition("spectrumPress"), 1) 453c462 < console.canvasDrawImage("/interface/easel/spectrumcursor.png", self.showSpectrumCursor[2], 1) --- > self.canvas:drawImage("/interface/easel/spectrumcursor.png", self.showSpectrumCursor[2], 1) 817c826 < world.sendEntityMessage(console.sourceEntity(), "requestSignDrop", dropSpot) --- > world.sendEntityMessage(pane.sourceEntity(), "requestSignDrop", dropSpot) 840c849 < templates["fromContainer"].isWired = true --- > templates["fromContainer"].isWired = true 911c920 < world.sendEntityMessage(console.sourceEntity(), "putInChest", signToPlace, fitSpots[1]) --- > world.sendEntityMessage(pane.sourceEntity(), "putInChest", signToPlace, fitSpots[1]) 916c925 < world.sendEntityMessage(console.sourceEntity(), "putInChest", signToPlace, i) --- > world.sendEntityMessage(pane.sourceEntity(), "putInChest", signToPlace, i) interface\games\fossilgame\fossilgame.lua 9a10,11 > gameCanvas = widget.bindCanvas("gameCanvas") > 12c14 < world.sendEntityMessage(console.sourceEntity(), "setInUse", true) --- > world.sendEntityMessage(pane.sourceEntity(), "setInUse", true) 24c26 < local fossilId = console.sourceEntity() --- > local fossilId = pane.sourceEntity() 44,48c46,49 < for _,material in ipairs(materials) do < local path = root.materialPath(material) < local config = root.assetJson(path) < local texture = util.absolutePath(util.pathDirectory(path), config.renderParameters.texture) < table.insert(self.tileData, {texturePath = texture, variants = config.renderParameters.variants or 1}) --- > for _, material in ipairs(materials) do > local materialConfig = root.materialConfig(material) > local texture = util.absolutePath(util.pathDirectory(materialConfig.path), materialConfig.config.renderParameters.texture) > table.insert(self.tileData, {texturePath = texture, variants = materialConfig.config.renderParameters.variants or 1}) 173c174 < console.playSound(config.getParameter("loseSound")) --- > pane.playSound(config.getParameter("loseSound")) 186c187 < console.dismiss() --- > pane.dismiss() 196c197 < console.playSound(config.getParameter("incompleteSound")) --- > pane.playSound(config.getParameter("incompleteSound")) 204c205 < console.dismiss() --- > pane.dismiss() 212c213 < console.playSound(config.getParameter("treasureFoundSound")) --- > pane.playSound(config.getParameter("treasureFoundSound")) 218c219 < console.playSound(config.getParameter("treasureOpenSound"))) --- > pane.playSound(config.getParameter("treasureOpenSound"))) 236c237 < world.sendEntityMessage(console.sourceEntity(), "addDrop", self.treasureItem) --- > world.sendEntityMessage(pane.sourceEntity(), "addDrop", self.treasureItem) 239c240 < world.sendEntityMessage(console.sourceEntity(), "addDrop", self.fossilItem) --- > world.sendEntityMessage(pane.sourceEntity(), "addDrop", self.fossilItem) 251c252 < console.playSound(config.getParameter("winSound")) --- > pane.playSound(config.getParameter("winSound")) 282c283 < console.dismiss() --- > pane.dismiss() 299c300 < console.playSound(config.getParameter("clearRockSound"), 0, 0.5) --- > pane.playSound(config.getParameter("clearRockSound"), 0, 0.5) 314c315 < console.playSound(config.getParameter("clearDirtSound")) --- > pane.playSound(config.getParameter("clearDirtSound")) 348c349 < console.canvasDrawText(action.text, action.parameters, action.size) --- > gameCanvas:drawText(action.text, action.parameters, action.size) 352a354,355 > gameCanvas:clear() > 381,382c384,385 < console.canvasDrawText("EXCAVATION", {position = {230, 183}, width = 88}, 12) < console.canvasDrawText("PROGRESS", {position = {235, 171}, width = 88}, 12) --- > gameCanvas:drawText("EXCAVATION", {position = {230, 183}, width = 88}, 12) > gameCanvas:drawText("PROGRESS", {position = {235, 171}, width = 88}, 12) 387c390 < console.canvasDrawText(self.level.progress .. "/" .. #self.level.fossilTiles, {position = {255, 153}}, 12, progressColor) --- > gameCanvas:drawText(self.level.progress .. "/" .. #self.level.fossilTiles, {position = {255, 153}}, 12, progressColor) 401c404 < console.canvasDrawText(tool.uses, {position = textPos}, 8, textCol) --- > gameCanvas:drawText(tool.uses, {position = textPos}, 8, textCol) 409c412 < local position = console.canvasMousePosition() --- > local position = gameCanvas:mousePosition() 419c422 < console.dismiss() --- > pane.dismiss() 455c458 < world.sendEntityMessage(console.sourceEntity(), "smash") --- > world.sendEntityMessage(pane.sourceEntity(), "smash") 458c461 < end \ No newline at end of file --- > end interface\games\fossilgame\fossilgamegui.config 9c9 < "scriptCanvas" : { --- > "gameCanvas" : { 17a18,24 > "canvasClickCallbacks" : { > "gameCanvas" : "canvasClickEvent" > }, > "canvasKeyCallbacks" : { > "gameCanvas" : "canvasKeyEvent" > }, > 22d28 < "scriptCanvas" : "scriptCanvas", interface\games\fossilgame\level.lua 142c142 < console.playSound(config.getParameter("fossilDamageSound"), 0, 1.0) --- > pane.playSound(config.getParameter("fossilDamageSound"), 0, 1.0) 160c160 < console.playSound(config.getParameter("fossilDamageSound"), 0, 1.0) --- > pane.playSound(config.getParameter("fossilDamageSound"), 0, 1.0) 186c186 < --- > 197c197 < --- > 209c209 < console.canvasDrawImage(self.treasure.image, {screenX, screenY}, 2) --- > gameCanvas:drawImage(self.treasure.image, {screenX, screenY}, 2) 214c214 < --- > 264c264 < console.canvasDrawRect(quad, color) --- > gameCanvas:drawRect(quad, color) interface\games\fossilgame\sprite.lua 35c35 < console.canvasDrawImageRect(self.image, texCoords, quad, self.color) --- > gameCanvas:drawImageRect(self.image, texCoords, quad, self.color) interface\games\fossilgame\tileset.lua 86c86 < self:drawTile(x, y, r, self.tileDamage[i+1]) --- > self:drawTile(x, y, r, self.tileDamage[i+1]) 101c101 < console.canvasDrawImageRect(self.materialPath, texCoords, quad, self.color) --- > gameCanvas:drawImageRect(self.materialPath, texCoords, quad, self.color) 103c103 < console.canvasDrawImageRect("/tiles/blockdamage.png", {32,0,40,8}, quad, {255,255,255,150}) --- > gameCanvas:drawImageRect("/tiles/blockdamage.png", {32,0,40,8}, quad, {255,255,255,150}) 117c117 < console.canvasDrawImageRect(self.materialPath, {texCoords[1], texCoords[4], texCoords[3], texCoords[4] + 4}, {quad[1], quad[4], quad[3], quad[4] + 4*scale}, self.color) --edge --- > gameCanvas:drawImageRect(self.materialPath, {texCoords[1], texCoords[4], texCoords[3], texCoords[4] + 4}, {quad[1], quad[4], quad[3], quad[4] + 4*scale}, self.color) --edge 119,120c119,120 < console.canvasDrawImageRect(self.materialPath, {texCoords[1] - 4, yOff + 16, texCoords[1], yOff + 20}, {quad[1], quad[4], quad[3] - 4*scale, quad[4] + 4*scale}, self.color) --corner < console.canvasDrawImageRect(self.materialPath, {texCoords[1] + 4, texCoords[4], texCoords[3], texCoords[4] + 4}, {quad[1] + 4*scale, quad[4], quad[3], quad[4] + 4*scale}, self.color) --edge --- > gameCanvas:drawImageRect(self.materialPath, {texCoords[1] - 4, yOff + 16, texCoords[1], yOff + 20}, {quad[1], quad[4], quad[3] - 4*scale, quad[4] + 4*scale}, self.color) --corner > gameCanvas:drawImageRect(self.materialPath, {texCoords[1] + 4, texCoords[4], texCoords[3], texCoords[4] + 4}, {quad[1] + 4*scale, quad[4], quad[3], quad[4] + 4*scale}, self.color) --edge 122,123c122,123 < console.canvasDrawImageRect(self.materialPath, {texCoords[1], yOff + 16, texCoords[1] + 4, yOff + 20}, {quad[1] + 4*scale, quad[4], quad[3], quad[4] + 4*scale}, self.color) --corner < console.canvasDrawImageRect(self.materialPath, {texCoords[1], texCoords[4], texCoords[3] - 4, texCoords[4] + 4}, {quad[1], quad[4], quad[3] - 4*scale, quad[4] + 4*scale}, self.color) --edge --- > gameCanvas:drawImageRect(self.materialPath, {texCoords[1], yOff + 16, texCoords[1] + 4, yOff + 20}, {quad[1] + 4*scale, quad[4], quad[3], quad[4] + 4*scale}, self.color) --corner > gameCanvas:drawImageRect(self.materialPath, {texCoords[1], texCoords[4], texCoords[3] - 4, texCoords[4] + 4}, {quad[1], quad[4], quad[3] - 4*scale, quad[4] + 4*scale}, self.color) --edge 125c125 < console.canvasDrawImageRect(self.materialPath, {texCoords[1] - 4, yOff + 16, texCoords[1] + 4, yOff + 20}, {quad[1], quad[4], quad[3], quad[4] + 4*scale}, self.color) --corner --- > gameCanvas:drawImageRect(self.materialPath, {texCoords[1] - 4, yOff + 16, texCoords[1] + 4, yOff + 20}, {quad[1], quad[4], quad[3], quad[4] + 4*scale}, self.color) --corner 131c131 < console.canvasDrawImageRect(self.materialPath, {texCoords[1], texCoords[2] - 4, texCoords[3], texCoords[2]}, {quad[1], quad[2] - 4*scale, quad[3], quad[2]}, self.color) --- > gameCanvas:drawImageRect(self.materialPath, {texCoords[1], texCoords[2] - 4, texCoords[3], texCoords[2]}, {quad[1], quad[2] - 4*scale, quad[3], quad[2]}, self.color) 133,134c133,134 < console.canvasDrawImageRect(self.materialPath, {texCoords[1] - 4, yOff + 20, texCoords[1], yOff + 24}, {quad[1], quad[2] - 4*scale, quad[3] - 4*scale, quad[2]}, self.color) -- corner < console.canvasDrawImageRect(self.materialPath, {texCoords[1] + 4, texCoords[2] - 4, texCoords[3], texCoords[2]}, {quad[1] + 4*scale, quad[2] - 4*scale, quad[3], quad[2]}, self.color) -- edge --- > gameCanvas:drawImageRect(self.materialPath, {texCoords[1] - 4, yOff + 20, texCoords[1], yOff + 24}, {quad[1], quad[2] - 4*scale, quad[3] - 4*scale, quad[2]}, self.color) -- corner > gameCanvas:drawImageRect(self.materialPath, {texCoords[1] + 4, texCoords[2] - 4, texCoords[3], texCoords[2]}, {quad[1] + 4*scale, quad[2] - 4*scale, quad[3], quad[2]}, self.color) -- edge 136,137c136,137 < console.canvasDrawImageRect(self.materialPath, {texCoords[1], yOff + 20, texCoords[1] + 4, yOff + 24}, {quad[1] + 4*scale, quad[2] - 4*scale, quad[3], quad[2]}, self.color) -- corner < console.canvasDrawImageRect(self.materialPath, {texCoords[1], texCoords[2] - 4, texCoords[3] - 4, texCoords[2]}, {quad[1], quad[2] - 4*scale, quad[3] - 4*scale, quad[2]}, self.color) -- edge --- > gameCanvas:drawImageRect(self.materialPath, {texCoords[1], yOff + 20, texCoords[1] + 4, yOff + 24}, {quad[1] + 4*scale, quad[2] - 4*scale, quad[3], quad[2]}, self.color) -- corner > gameCanvas:drawImageRect(self.materialPath, {texCoords[1], texCoords[2] - 4, texCoords[3] - 4, texCoords[2]}, {quad[1], quad[2] - 4*scale, quad[3] - 4*scale, quad[2]}, self.color) -- edge 139c139 < console.canvasDrawImageRect(self.materialPath, {texCoords[1] - 4, yOff + 20, texCoords[1] + 4, yOff + 24}, {quad[1], quad[2] - 4*scale, quad[3], quad[2]}, self.color) -- corner --- > gameCanvas:drawImageRect(self.materialPath, {texCoords[1] - 4, yOff + 20, texCoords[1] + 4, yOff + 24}, {quad[1], quad[2] - 4*scale, quad[3], quad[2]}, self.color) -- corner 145c145 < console.canvasDrawImageRect(self.materialPath, {texCoords[3], texCoords[2], texCoords[3] + 4, texCoords[4]}, {quad[3], quad[2], quad[3] + 4*scale, quad[4]}, self.color) --- > gameCanvas:drawImageRect(self.materialPath, {texCoords[3], texCoords[2], texCoords[3] + 4, texCoords[4]}, {quad[3], quad[2], quad[3] + 4*scale, quad[4]}, self.color) 147c147 < console.canvasDrawImageRect(self.materialPath, {texCoords[3], texCoords[2] + 4, texCoords[3] + 4, texCoords[4]}, {quad[3], quad[2] + 4*scale, quad[3] + 4*scale, quad[4]}, self.color) --- > gameCanvas:drawImageRect(self.materialPath, {texCoords[3], texCoords[2] + 4, texCoords[3] + 4, texCoords[4]}, {quad[3], quad[2] + 4*scale, quad[3] + 4*scale, quad[4]}, self.color) 149c149 < console.canvasDrawImageRect(self.materialPath, {texCoords[3], texCoords[2], texCoords[3] + 4, texCoords[4] - 4}, {quad[3], quad[2], quad[3] + 4*scale, quad[4] - 4*scale}, self.color) --- > gameCanvas:drawImageRect(self.materialPath, {texCoords[3], texCoords[2], texCoords[3] + 4, texCoords[4] - 4}, {quad[3], quad[2], quad[3] + 4*scale, quad[4] - 4*scale}, self.color) 155c155 < console.canvasDrawImageRect(self.materialPath, {texCoords[1] - 4, texCoords[2], texCoords[1], texCoords[4]}, {quad[1] - 4*scale, quad[2], quad[1], quad[4]}, self.color) --- > gameCanvas:drawImageRect(self.materialPath, {texCoords[1] - 4, texCoords[2], texCoords[1], texCoords[4]}, {quad[1] - 4*scale, quad[2], quad[1], quad[4]}, self.color) 157c157 < console.canvasDrawImageRect(self.materialPath, {texCoords[1] - 4, texCoords[2] + 4, texCoords[1], texCoords[4]}, {quad[1] - 4*scale, quad[2] + 4*scale, quad[1], quad[4]}, self.color) --- > gameCanvas:drawImageRect(self.materialPath, {texCoords[1] - 4, texCoords[2] + 4, texCoords[1], texCoords[4]}, {quad[1] - 4*scale, quad[2] + 4*scale, quad[1], quad[4]}, self.color) 159c159 < console.canvasDrawImageRect(self.materialPath, {texCoords[1] - 4, texCoords[2], texCoords[1], texCoords[4] - 4}, {quad[1] - 4*scale, quad[2], quad[1], quad[4] - 4*scale}, self.color) --- > gameCanvas:drawImageRect(self.materialPath, {texCoords[1] - 4, texCoords[2], texCoords[1], texCoords[4] - 4}, {quad[1] - 4*scale, quad[2], quad[1], quad[4] - 4*scale}, self.color) interface\games\fossilgame\tools.lua 62c62 < console.playSound(self.sound[soundIndex], 0, volume) --- > pane.playSound(self.sound[soundIndex], 0, volume) 128c128 < console.canvasDrawRect({screenX, screenY, screenX + self.level.tileSize, screenY + self.level.tileSize}, {255, 255, 255, 100}) --- > gameCanvas:drawRect({screenX, screenY, screenX + self.level.tileSize, screenY + self.level.tileSize}, {255, 255, 255, 100}) 212c212 < console.playSound(self.sound) --- > pane.playSound(self.sound) 298c298 < return uses --- > return uses 326c326 < return uses --- > return uses interface\scripted\cropshipper\cropshippergui.config 208a209 > "cheese", interface\tooltips\armor.tooltip 5c5 < "fileBody" : "/interface/tooltips/armorbody.png", --- > "fileBody" : "/interface/tooltips/bodyarmor.png", interface\tooltips\back.tooltip 6c6 < "fileFooter" : "/interface/tooltips/footer.png" --- > "fileFooter" : "/interface/tooltips/footerobjects.png" interface\tooltips\base.tooltip 6c6 < "fileFooter" : "/interface/tooltips/footer.png" --- > "fileFooter" : "/interface/tooltips/footerobject.png" interface\tooltips\bow.tooltip 6c6 < "fileFooter" : "/interface/tooltips/footer.png" --- > "fileFooter" : "/interface/tooltips/footerobject3.png" interface\tooltips\container.tooltip 6c6 < "fileFooter" : "/interface/tooltips/footer.png" --- > "fileFooter" : "/interface/tooltips/footerobject2.png" interface\tooltips\door.tooltip 6c6 < "fileFooter" : "/interface/tooltips/footer.png" --- > "fileFooter" : "/interface/tooltips/footerobject.png" interface\tooltips\eppaugment.tooltip 6c6 < "fileFooter" : "/interface/tooltips/footerfood.png" --- > "fileFooter" : "/interface/tooltips/footerobject4.png" interface\tooltips\filledcapturepod.tooltip 5c5 < "fileBody" : "/interface/tooltips/filledcapturepod.png", --- > "fileBody" : "/interface/tooltips/bodycapturepod.png", interface\tooltips\fishingrod.tooltip 5c5 < "fileBody" : "/interface/tooltips/fishingrod.png", --- > "fileBody" : "/interface/tooltips/bodyfishingrod.png", interface\tooltips\fishingupgrade.tooltip 6c6 < "fileFooter" : "/interface/tooltips/footerfood.png" --- > "fileFooter" : "/interface/tooltips/footerobject4.png" interface\tooltips\fistweapon.tooltip 6c6 < "fileFooter" : "/interface/tooltips/footer.png" --- > "fileFooter" : "/interface/tooltips/footerobjectextended.png" interface\tooltips\food.tooltip 6c6 < "fileFooter" : "/interface/tooltips/footerfood.png" --- > "fileFooter" : "/interface/tooltips/footerobject4.png" interface\tooltips\fossil.tooltip 6c6 < "fileFooter" : "/interface/tooltips/footer.png" --- > "fileFooter" : "/interface/tooltips/footerobjects.png" interface\tooltips\gun.tooltip 6c6 < "fileFooter" : "/interface/tooltips/footer.png" --- > "fileFooter" : "/interface/tooltips/footerobject3.png" interface\tooltips\mm.tooltip 6c6 < "fileFooter" : "/interface/tooltips/footer.png" --- > "fileFooter" : "/interface/tooltips/footerobject.png" interface\tooltips\object.tooltip 6c6 < "fileFooter" : "/interface/tooltips/footer.png" --- > "fileFooter" : "/interface/tooltips/footerobjects.png" interface\tooltips\petcollar.tooltip 6c6 < "fileFooter" : "/interface/tooltips/footerfood.png" --- > "fileFooter" : "/interface/tooltips/footerobject4.png" interface\tooltips\seed.tooltip 6c6 < "fileFooter" : "/interface/tooltips/footer.png" --- > "fileFooter" : "/interface/tooltips/footerobject.png" interface\tooltips\shield.tooltip 6c6 < "fileFooter" : "/interface/tooltips/footer.png" --- > "fileFooter" : "/interface/tooltips/footerobjectextended.png" interface\tooltips\staff.tooltip 6c6 < "fileFooter" : "/interface/tooltips/footer.png" --- > "fileFooter" : "/interface/tooltips/footerobject2.png" interface\tooltips\sword.tooltip 6c6 < "fileFooter" : "/interface/tooltips/footersword.png" --- > "fileFooter" : "/interface/tooltips/footerobject2.png" interface\tooltips\tool.tooltip 6c6 < "fileFooter" : "/interface/tooltips/footer.png" --- > "fileFooter" : "/interface/tooltips/footerobject.png" interface\tooltips\vehicle.tooltip 6c6 < "fileFooter" : "/interface/tooltips/footer.png" --- > "fileFooter" : "/interface/tooltips/footerobject.png" interface\warping\shipteleporter.config 10a11,17 > }, > { > "name" : "Deploy Mech", > "planetName" : "current orbited world", > "warpAction" : "OrbitedWorld", > "deploy" : true, > "icon" : "deploy" 13c20 < } \ No newline at end of file --- > } interface\windowconfig\charselection.config 18c18 < "base" : "/interface/cockpit/arrow_Down.png", --- > "base" : "/interface/title/chardown.png", 25c25 < "base" : "/interface/cockpit/arrow_Up.png", --- > "base" : "/interface/title/charup.png", interface\windowconfig\keybindingsmenu.config 158,173d157 < "label" : "Cockpit Up", < "action" : "CockpitUp" < }, < { < "label" : "Cockpit Down", < "action" : "CockpitDown" < }, < { < "label" : "Cockpit Left", < "action" : "CockpitLeft" < }, < { < "label" : "Cockpit Right", < "action" : "CockpitRight" < }, < { interface\windowconfig\teleportdialog.config 96c96,101 < } --- > }, > > "beamPartyMemberLabel" : "Beam to Party Member", > "deployPartyMemberLabel" : "Deploy to Party Member", > "beamPartyMemberIcon" : "/interface/bookmarks/icons/beamparty.png", > "deployPartyMemberIcon" : "/interface/bookmarks/icons/deploy.png" items\categories.config 43a44 > "salvageComponent" : "Salvage Component", 54a56,57 > "mechPart" : "Mech Component", > "tradeGoods" : "Trade Goods", items\active\effects\chain.lua 8a9 > local continue = false 15c16,21 < chain.startPosition = vec2.add(entity.position(), animationConfig.partPoint(chain.sourcePart, "beamSource")) --- > local beamSource = animationConfig.partPoint(chain.sourcePart, "beamSource") > if beamSource then > chain.startPosition = vec2.add(entity.position(), beamSource) > else > continue = true > end 18c24,29 < chain.endPosition = vec2.add(entity.position(), animationConfig.partPoint(chain.endPart, "beamEnd")) --- > local beamEnd = animationConfig.partPoint(chain.endPart, "beamEnd") > if beamEnd then > chain.endPosition = vec2.add(entity.position(), beamEnd) > else > continue = true > end 21c32 < if not chain.targetEntityId or world.entityExists(chain.targetEntityId) then --- > if not continue and (not chain.targetEntityId or world.entityExists(chain.targetEntityId)) then items\active\fossil\fossilbrush.lua 59c59 < activeItem.interact("ScriptConsole", onFossilId, configData) --- > activeItem.interact("ScriptPane", configData, onFossilId) items\active\unsorted\filledcapturepod\npcpetcapturepod.lua 45c45,47 < if world.entityType(entityId) == "npc" then --- > if player then > player.consumeItem(item.descriptor(), true, true) > else 47,48d48 < elseif world.entityType(entityId) == "player" then < activeItem.takeOwnerItem(item.descriptor()) items\active\unsorted\geode\geode.lua 40,45c40,47 < local pool = config.getParameter("treasure.pool") < local level = config.getParameter("treasure.level") < local seed = config.getParameter("treasure.seed") < local treasure = root.createTreasure(pool, level, seed) < for _,item in pairs(treasure) do < activeItem.giveOwnerItem(item) --- > if player then > local pool = config.getParameter("treasure.pool") > local level = config.getParameter("treasure.level") > local seed = config.getParameter("treasure.seed") > local treasure = root.createTreasure(pool, level, seed) > for _,item in pairs(treasure) do > player.giveItem(item) > end items\active\unsorted\penguincostume\penguincostume.lua 41,46c41,48 < local pool = config.getParameter("treasure.pool") < local level = config.getParameter("treasure.level") < local seed = config.getParameter("treasure.seed") < local treasure = root.createTreasure(pool, level, seed) < for _,item in pairs(treasure) do < activeItem.giveOwnerItem(item) --- > if player then > local pool = config.getParameter("treasure.pool") > local level = config.getParameter("treasure.level") > local seed = config.getParameter("treasure.seed") > local treasure = root.createTreasure(pool, level, seed) > for _,item in pairs(treasure) do > player.giveItem(item) > end items\active\unsorted\railplatform\railplatform.lua 32c32 < if world.lineCollision(mcontroller.position(), pos, {"Null", "Block", "Dynamic"}) then return false end --- > if world.lineCollision(mcontroller.position(), pos, {"Null", "Block", "Dynamic", "Slippery"}) then return false end 35c35 < return not world.rectCollision(placementRect, {"Null", "Block", "Dynamic"}) --- > return not world.rectCollision(placementRect, {"Null", "Block", "Dynamic", "Slippery"}) items\active\unsorted\rewardbag\rewardbag.lua 41,46c41,48 < local pool = config.getParameter("treasure.pool") < local level = config.getParameter("treasure.level") < local seed = config.getParameter("treasure.seed") < local treasure = root.createTreasure(pool, level, seed) < for _,item in pairs(treasure) do < activeItem.giveOwnerItem(item) --- > if player then > local pool = config.getParameter("treasure.pool") > local level = config.getParameter("treasure.level") > local seed = config.getParameter("treasure.seed") > local treasure = root.createTreasure(pool, level, seed) > for _,item in pairs(treasure) do > player.giveItem(item) > end items\active\unsorted\superrewardbag\superrewardbag.lua 41,46c41,48 < local pool = config.getParameter("treasure.pool") < local level = config.getParameter("treasure.level") < local seed = config.getParameter("treasure.seed") < local treasure = root.createTreasure(pool, level, seed) < for _,item in pairs(treasure) do < activeItem.giveOwnerItem(item) --- > if player then > local pool = config.getParameter("treasure.pool") > local level = config.getParameter("treasure.level") > local seed = config.getParameter("treasure.seed") > local treasure = root.createTreasure(pool, level, seed) > for _,item in pairs(treasure) do > player.giveItem(item) > end items\active\vehiclecontroller\vehiclecontroller.lua 121c121 < if world.rectTileCollision(vehicleBounds, {"Null", "Block", "Dynamic"}) then --- > if world.rectTileCollision(vehicleBounds, {"Null", "Block", "Dynamic", "Slippery"}) then items\active\weapons\boomerang\boomerang.lua 75c75 < local updatedProjectileIds = world.callScriptedEntity(projectileId, "boomerangProjectileIds") --- > local updatedProjectileIds = world.callScriptedEntity(projectileId, "projectileIds") items\active\weapons\fist\punch.lua 29c29 < if self.freezeTimer > 0 and not mcontroller.onGround() then --- > if self.freezeTimer > 0 and not mcontroller.onGround() and math.abs(world.gravity(mcontroller.position())) > 0 then items\active\weapons\fist\combofinishers\powerpunch.lua 19c19 < if self.freezeTimer > 0 and not mcontroller.onGround() then --- > if self.freezeTimer > 0 and not mcontroller.onGround() and math.abs(world.gravity(mcontroller.position())) > 0 then items\active\weapons\fist\combofinishers\snaproot.lua 19c19 < if self.freezeTimer > 0 and not mcontroller.onGround() then --- > if self.freezeTimer > 0 and not mcontroller.onGround() and math.abs(world.gravity(mcontroller.position())) > 0 then items\active\weapons\fist\combofinishers\uppercut.lua 19c19 < if self.freezeTimer > 0 and not mcontroller.onGround() then --- > if self.freezeTimer > 0 and not mcontroller.onGround() and math.abs(world.gravity(mcontroller.position())) > 0 then 65c65 < if self.stances.fire.velocity then --- > if self.stances.fire.velocity and math.abs(world.gravity(mcontroller.position())) > 0 then items\active\weapons\melee\abilities\broadsword\downstab\downstab.lua 38c38 < while mcontroller.yVelocity() > self.stabVelocity and not mcontroller.onGround() do --- > while mcontroller.yVelocity() > self.stabVelocity and math.abs(world.gravity(mcontroller.position())) > 0 and not mcontroller.onGround() do 53c53,55 < mcontroller.setYVelocity(self.bounceYVelocity) --- > if math.abs(world.gravity(mcontroller.position())) > 0 then > mcontroller.setYVelocity(self.bounceYVelocity) > end 61c63,66 < while self.fireMode == "alt" and not mcontroller.onGround() do --- > local stabTimer = self.stances.stab.minStabTime > while (stabTimer > 0 or (self.fireMode == "alt" and self:inGravity())) and not mcontroller.onGround() do > stabTimer = stabTimer - self.dt > 64,66c69,72 < if mcontroller.yVelocity() > 0 then < self:setState(self.hold) < end --- > if self:inGravity() then > if mcontroller.yVelocity() > 0 then > self:setState(self.hold) > end 68c74,75 < damageListener:update() --- > damageListener:update() > end 79a87,91 > > > function Downstab:inGravity() > return math.abs(world.gravity(mcontroller.position())) > 0 > end \ No newline at end of file items\active\weapons\melee\abilities\broadsword\downstab\downstab.weaponability 45a46 > "minStabTime" : 0.2, items\active\weapons\melee\abilities\broadsword\risingslash\risingslash.lua 50c50,52 < mcontroller.controlApproachYVelocity(self.dashSpeed, self.dashControlForce) --- > if math.abs(world.gravity(mcontroller.position())) > 0 then > mcontroller.controlApproachYVelocity(self.dashSpeed, self.dashControlForce) > end items\active\weapons\melee\abilities\broadsword\spinslash\superspinslash.lua 35c35 < if self.hover then --- > if self.hover and math.abs(world.gravity(mcontroller.position())) > 0 then items\active\weapons\melee\abilities\generic\blinkexplosion\blinkexplosion.lua 23c23 < --- > 91c91 < if not world.rectTileCollision(bounds, {"Null", "Block", "Dynamic"}) then --- > if not world.rectTileCollision(bounds, {"Null", "Block", "Dynamic", "Slippery"}) then items\active\weapons\melee\abilities\generic\blinkslash\blinkslash.lua 104c104 < if groundPosition and (not self.requireLineOfSight or not world.lineTileCollision(mcontroller.position(), groundPosition, {"Null", "Block", "Dynamic"})) then --- > if groundPosition and (not self.requireLineOfSight or not world.lineTileCollision(mcontroller.position(), groundPosition, {"Null", "Block", "Dynamic", "Slippery"})) then items\active\weapons\melee\abilities\hammer\hammersmash.lua 33,34c33,38 < if self.stances.preslash then < self:setState(self.preslash) --- > if math.abs(world.gravity(mcontroller.position())) > 0 then > if self.stances.preslash then > self:setState(self.preslash) > else > self:setState(self.fire) > end 36c40 < self:setState(self.fire) --- > self:setState(self.spin) 95a100,136 > end > > function HammerSmash:spin() > self.weapon:setStance(self.stances.fire) > self.weapon:updateAim() > > animator.setAnimationState("swoosh", "fire") > animator.playSound("fire") > animator.burstParticleEmitter(self.weapon.elementalType .. "swoosh") > > local direction = -mcontroller.facingDirection() > > local spinTimer = self.stances.spin.spinTimer > while spinTimer > 0 do > spinTimer = spinTimer - self.dt > > local ratio = 1 - ((spinTimer / self.stances.spin.spinTimer) ^ 2) > local angle = ratio * self.stances.spin.spinAngle * direction > mcontroller.setRotation(angle) > > local damageArea = partDamageArea("swoosh") > if damageArea then > self.weapon:setDamage(self.damageConfig, poly.rotate(damageArea, angle), self.fireTime) > end > > coroutine.yield() > end > > mcontroller.setRotation(0) > self.cooldownTimer = self:cooldownTime() > end > > function HammerSmash:uninit() > MeleeSlash.uninit(self) > if self.weapon.currentState == self.spin then > mcontroller.setRotation(0) > end items\active\weapons\melee\abilities\hammer\hammersmash.weaponability 75a76,79 > }, > "spin" : { > "spinTimer" : 4, > "spinAngle" : 62.8 items\active\weapons\melee\abilities\hammer\elementalpillar\elementalpillar.lua 100c100 < if not world.pointTileCollision(position, {"Null", "Block", "Dynamic"}) then --- > if not world.pointTileCollision(position, {"Null", "Block", "Dynamic", "Slippery"}) then 113,114c113,114 < < local blocks = world.collisionBlocksAlongLine(startLine, endLine, {"Null", "Block", "Dynamic"}) --- > > local blocks = world.collisionBlocksAlongLine(startLine, endLine, {"Null", "Block", "Dynamic", "Slippery"}) items\active\weapons\melee\abilities\hammer\groundslam\groundslam.lua 54,63c54,67 < util.wait(self.maxSlamTime, function(dt) < mcontroller.setYVelocity(self.slamSpeed) < local newSlamPosition = self:slamPosition() < if world.lineTileCollision(lastSlamPosition, newSlamPosition) then < local params = copy(self.projectileParameters) < params.powerMultiplier = activeItem.ownerPowerMultiplier() < params.power = params.power * config.getParameter("damageLevelMultiplier") < < world.spawnProjectile(self.projectileType, lastSlamPosition, activeItem.ownerEntityId(), {0,0}, false, params) < return true --- > local slamTime = self:inGravity() and self.maxSlamTime or self.spaceSlamTime > util.wait(slamTime, function(dt) > if self:inGravity() then > mcontroller.setYVelocity(self.slamSpeed) > local newSlamPosition = self:slamPosition() > if world.lineTileCollision(lastSlamPosition, newSlamPosition) then > local params = copy(self.projectileParameters) > params.powerMultiplier = activeItem.ownerPowerMultiplier() > params.power = params.power * config.getParameter("damageLevelMultiplier") > > world.spawnProjectile(self.projectileType, lastSlamPosition, activeItem.ownerEntityId(), {0,0}, false, params) > return true > end > lastSlamPosition = newSlamPosition 65d68 < lastSlamPosition = newSlamPosition 89a93,96 > end > > function GroundSlam:inGravity() > return math.abs(world.gravity(mcontroller.position())) > 0 items\active\weapons\melee\abilities\hammer\groundslam\groundslam.weaponability 37a38 > "spaceSlamTime" : 0.2, items\active\weapons\melee\abilities\hammer\shockwave\shockwave.lua 114c114 < --- > 134c134 < if world.pointTileCollision(groundPosition, {"Null", "Block", "Dynamic"}) and not world.rectTileCollision(bounds, {"Null", "Block", "Dynamic"}) then --- > if world.pointTileCollision(groundPosition, {"Null", "Block", "Dynamic", "Slippery"}) and not world.rectTileCollision(bounds, {"Null", "Block", "Dynamic", "Slippery"}) then items\active\weapons\npc\npcassaultrifle.activeitem 19a20 > "scriptDelta" : 2, items\active\weapons\npc\npcavianbroadsword.activeitem 26a27 > "scriptDelta" : 2, items\active\weapons\npc\npcaxe.activeitem 17a18 > "scriptDelta" : 2, items\active\weapons\npc\npcbow.activeitem 32a33 > "scriptDelta" : 2, items\active\weapons\npc\npcbroadsword.activeitem 16a17 > "scriptDelta" : 2, items\active\weapons\npc\npcbruisersword.activeitem 27a28 > "scriptDelta" : 2, items\active\weapons\npc\npccultistbroadsword.activeitem 26a27 > "scriptDelta" : 2, items\active\weapons\npc\npccultistshortsword.activeitem 17a18 > "scriptDelta" : 2, items\active\weapons\npc\npcdagger.activeitem 17a18 > "scriptDelta" : 2, items\active\weapons\npc\npcdeadbeatassaultrifle.activeitem 19a20 > "scriptDelta" : 2, items\active\weapons\npc\npcdeadbeataxe.activeitem 19a20 > "scriptDelta" : 2, items\active\weapons\npc\npceyesword.activeitem 33a34 > "scriptDelta" : 2, items\active\weapons\npc\npcfeneroxspear.activeitem 26a27 > "scriptDelta" : 2, items\active\weapons\npc\npcfirebow.activeitem 32a33 > "scriptDelta" : 2, items\active\weapons\npc\npcfloranassaultrifle.activeitem 19a20 > "scriptDelta" : 2, items\active\weapons\npc\npchammer.activeitem 16a17 > "scriptDelta" : 2, items\active\weapons\npc\npcmachinepistol.activeitem 20a21 > "scriptDelta" : 2, items\active\weapons\npc\npcpistol.activeitem 20a21 > "scriptDelta" : 2, items\active\weapons\npc\npcrocketlauncher.activeitem 48a49 > "scriptDelta" : 2, items\active\weapons\npc\npcshortsword.activeitem 17a18 > "scriptDelta" : 2, items\active\weapons\npc\npcshotgun.activeitem 20a21 > "scriptDelta" : 2, items\active\weapons\npc\npcsniperrifle.activeitem 20a21 > "scriptDelta" : 2, items\active\weapons\npc\npcspear.activeitem 21a22 > "scriptDelta" : 2, items\active\weapons\npc\npctungstenbow.activeitem 32a33 > "scriptDelta" : 2, items\active\weapons\npc\npcwrench.activeitem 27a28 > "scriptDelta" : 2, items\active\weapons\other\fireworkgun\fireworkgun.activeitem 40c40 < "projectileType" : ["fireworkgun","fireworkgunblue", "fireworkgunyellow", "fireworkgungreen", "fireworkgunred"], --- > "projectileType" : ["fireworkgun", "fireworkgunblue", "fireworkgunyellow", "fireworkgungreen", "fireworkgunred"], items\active\weapons\other\magnorbs\magnorbs.lua 65a66,69 > if self.shieldTransformTimer > 0 and self.shieldTransformTimer < dt then > setOrbPosition(1) > end > 89,90d92 < < items\armors\backitems\parachutepack\parachutepack.back 15a16 > // DEFAULT 17,26c18,39 < { "ffca8a" : "727272", "e0975c" : "414141", "a85636" : "1c1c1c", "6f2919" : "0b0b0b" }, < { "ffca8a" : "e9e9e9", "e0975c" : "727272", "a85636" : "333333", "6f2919" : "161616" }, < { "ffca8a" : "ba3f36", "e0975c" : "7a2622", "a85636" : "411114", "6f2919" : "25090c" }, < { "ffca8a" : "d77b24", "e0975c" : "794317", "a85636" : "3a1f0f", "6f2919" : "1d1009" }, < { "ffca8a" : "eedb53", "e0975c" : "928132", "a85636" : "42381a", "6f2919" : "262010" }, < { "ffca8a" : "6c9e4a", "e0975c" : "395b2b", "a85636" : "1b2e16", "6f2919" : "0b140a" }, < { "ffca8a" : "4681c0", "e0975c" : "284672", "a85636" : "161b3b", "6f2919" : "0c0e22" }, < { "ffca8a" : "7d4794", "e0975c" : "4d245d", "a85636" : "221328", "6f2919" : "0f0912" }, < { "ffca8a" : "d46bd7", "e0975c" : "7c377b", "a85636" : "30172e", "6f2919" : "170b16" }, < { "ffca8a" : "a36948", "e0975c" : "683a23", "a85636" : "2d1a12", "6f2919" : "170d09" } --- > // BLACK > { "ffca8a" : "838383", "e0975c" : "555555", "a85636" : "383838", "6f2919" : "151515" }, > // GREY > { "ffca8a" : "b5b5b5", "e0975c" : "808080", "a85636" : "555555", "6f2919" : "303030" }, > // WHITE > { "ffca8a" : "e6e6e6", "e0975c" : "b6b6b6", "a85636" : "7b7b7b", "6f2919" : "373737" }, > // RED > { "ffca8a" : "f4988c", "e0975c" : "d93a3a", "a85636" : "932625", "6f2919" : "601119" }, > // ORANGE > { "ffca8a" : "ffd495", "e0975c" : "ea9931", "a85636" : "af4e00", "6f2919" : "6e2900" }, > // YELLOW > { "ffca8a" : "ffffa7", "e0975c" : "e2c344", "a85636" : "a46e06", "6f2919" : "642f00" }, > // GREEN > { "ffca8a" : "b2e89d", "e0975c" : "51bd3b", "a85636" : "247824", "6f2919" : "144216" }, > // BLUE > { "ffca8a" : "96cbe7", "e0975c" : "5588d4", "a85636" : "344495", "6f2919" : "1a1c51" }, > // PURPLE > { "ffca8a" : "d29ce7", "e0975c" : "a451c4", "a85636" : "6a2284", "6f2919" : "320c40" }, > // PINK > { "ffca8a" : "eab3db", "e0975c" : "d35eae", "a85636" : "97276d", "6f2919" : "59163f" }, > // BROWN > { "ffca8a" : "ccae7c", "e0975c" : "a47844", "a85636" : "754c23", "6f2919" : "472b13" } items\armors\biome\jungle\tough\tough.chest 24a25,32 > // DEFAULT RED > { "ffca8a" : "f4988c", "e0975c" : "d93a3a", "a85636" : "932625", "6f2919" : "601119" }, > // BLACK > { "ffca8a" : "838383", "e0975c" : "555555", "a85636" : "383838", "6f2919" : "151515" }, > // GREY > { "ffca8a" : "b5b5b5", "e0975c" : "808080", "a85636" : "555555", "6f2919" : "303030" }, > // WHITE > { "ffca8a" : "e6e6e6", "e0975c" : "b6b6b6", "a85636" : "7b7b7b", "6f2919" : "373737" }, 27,36c35,48 < { "ffca8a" : "727272", "e0975c" : "414141", "a85636" : "1c1c1c", "6f2919" : "0b0b0b" }, < { "ffca8a" : "e9e9e9", "e0975c" : "727272", "a85636" : "333333", "6f2919" : "161616" }, < { "ffca8a" : "ba3f36", "e0975c" : "7a2622", "a85636" : "411114", "6f2919" : "25090c" }, < { "ffca8a" : "d77b24", "e0975c" : "794317", "a85636" : "3a1f0f", "6f2919" : "1d1009" }, < { "ffca8a" : "eedb53", "e0975c" : "928132", "a85636" : "42381a", "6f2919" : "262010" }, < { "ffca8a" : "6c9e4a", "e0975c" : "395b2b", "a85636" : "1b2e16", "6f2919" : "0b140a" }, < { "ffca8a" : "4681c0", "e0975c" : "284672", "a85636" : "161b3b", "6f2919" : "0c0e22" }, < { "ffca8a" : "7d4794", "e0975c" : "4d245d", "a85636" : "221328", "6f2919" : "0f0912" }, < { "ffca8a" : "d46bd7", "e0975c" : "7c377b", "a85636" : "30172e", "6f2919" : "170b16" }, < { "ffca8a" : "a36948", "e0975c" : "683a23", "a85636" : "2d1a12", "6f2919" : "170d09" } --- > // ORANGE > { "ffca8a" : "ffd495", "e0975c" : "ea9931", "a85636" : "af4e00", "6f2919" : "6e2900" }, > // YELLOW > { "ffca8a" : "ffffa7", "e0975c" : "e2c344", "a85636" : "a46e06", "6f2919" : "642f00" }, > // GREEN > { "ffca8a" : "b2e89d", "e0975c" : "51bd3b", "a85636" : "247824", "6f2919" : "144216" }, > // BLUE > { "ffca8a" : "96cbe7", "e0975c" : "5588d4", "a85636" : "344495", "6f2919" : "1a1c51" }, > // PURPLE > { "ffca8a" : "d29ce7", "e0975c" : "a451c4", "a85636" : "6a2284", "6f2919" : "320c40" }, > // PINK > { "ffca8a" : "eab3db", "e0975c" : "d35eae", "a85636" : "97276d", "6f2919" : "59163f" }, > // BROWN > { "ffca8a" : "ccae7c", "e0975c" : "a47844", "a85636" : "754c23", "6f2919" : "472b13" } items\armors\biome\jungle\tough\tough.legs 15a16 > // DEFAULT 17,27c18,39 < { "ffca8a" : "727272", "e0975c" : "414141", "a85636" : "1c1c1c", "6f2919" : "0b0b0b" }, < { "ffca8a" : "e9e9e9", "e0975c" : "727272", "a85636" : "333333", "6f2919" : "161616" }, < { "ffca8a" : "ba3f36", "e0975c" : "7a2622", "a85636" : "411114", "6f2919" : "25090c" }, < { "ffca8a" : "d77b24", "e0975c" : "794317", "a85636" : "3a1f0f", "6f2919" : "1d1009" }, < { "ffca8a" : "eedb53", "e0975c" : "928132", "a85636" : "42381a", "6f2919" : "262010" }, < { "ffca8a" : "6c9e4a", "e0975c" : "395b2b", "a85636" : "1b2e16", "6f2919" : "0b140a" }, < { "ffca8a" : "4681c0", "e0975c" : "284672", "a85636" : "161b3b", "6f2919" : "0c0e22" }, < { "ffca8a" : "7d4794", "e0975c" : "4d245d", "a85636" : "221328", "6f2919" : "0f0912" }, < { "ffca8a" : "d46bd7", "e0975c" : "7c377b", "a85636" : "30172e", "6f2919" : "170b16" }, < { "ffca8a" : "a36948", "e0975c" : "683a23", "a85636" : "2d1a12", "6f2919" : "170d09" } < // { "ffca8a" : "888660", "e0975c" : "4c4e37", "a85636" : "26281c", "6f2919" : "0f100b" }, Old Army Green// --- > // BLACK > { "ffca8a" : "838383", "e0975c" : "555555", "a85636" : "383838", "6f2919" : "151515" }, > // GREY > { "ffca8a" : "b5b5b5", "e0975c" : "808080", "a85636" : "555555", "6f2919" : "303030" }, > // WHITE > { "ffca8a" : "e6e6e6", "e0975c" : "b6b6b6", "a85636" : "7b7b7b", "6f2919" : "373737" }, > // RED > { "ffca8a" : "f4988c", "e0975c" : "d93a3a", "a85636" : "932625", "6f2919" : "601119" }, > // ORANGE > { "ffca8a" : "ffd495", "e0975c" : "ea9931", "a85636" : "af4e00", "6f2919" : "6e2900" }, > // YELLOW > { "ffca8a" : "ffffa7", "e0975c" : "e2c344", "a85636" : "a46e06", "6f2919" : "642f00" }, > // GREEN > { "ffca8a" : "b2e89d", "e0975c" : "51bd3b", "a85636" : "247824", "6f2919" : "144216" }, > // BLUE > { "ffca8a" : "96cbe7", "e0975c" : "5588d4", "a85636" : "344495", "6f2919" : "1a1c51" }, > // PURPLE > { "ffca8a" : "d29ce7", "e0975c" : "a451c4", "a85636" : "6a2284", "6f2919" : "320c40" }, > // PINK > { "ffca8a" : "eab3db", "e0975c" : "d35eae", "a85636" : "97276d", "6f2919" : "59163f" }, > // BROWN > { "ffca8a" : "ccae7c", "e0975c" : "a47844", "a85636" : "754c23", "6f2919" : "472b13" } items\armors\biome\midnight\dark\dark.head 19,29c19,42 < { "ffca8a" : "fffdb0", "e0975c" : "cbc234", "a85636" : "926e19", "6f2919" : "563f0f" }, < { "ffca8a" : "727272", "e0975c" : "414141", "a85636" : "1c1c1c", "6f2919" : "0b0b0b" }, < { "ffca8a" : "e9e9e9", "e0975c" : "727272", "a85636" : "333333", "6f2919" : "161616" }, < { "ffca8a" : "fa5f53", "e0975c" : "bc1d1d", "a85636" : "76141b", "6f2919" : "460c12" }, < { "ffca8a" : "ffb05a", "e0975c" : "c36a22", "a85636" : "833d12", "6f2919" : "512209" }, < { "ffca8a" : "fae153", "e0975c" : "b1981c", "a85636" : "7d6214", "6f2919" : "47340a" }, < { "ffca8a" : "8ed563", "e0975c" : "498737", "a85636" : "1e4b19", "6f2919" : "0b200a" }, < { "ffca8a" : "47c8f8", "e0975c" : "1b79b5", "a85636" : "10386d", "6f2919" : "091d3f" }, < { "ffca8a" : "be69f4", "e0975c" : "8532bf", "a85636" : "4e187c", "6f2919" : "290c46" }, < { "ffca8a" : "fc72f8", "e0975c" : "a239a3", "a85636" : "681f6f", "6f2919" : "35103b" }, < { "ffca8a" : "bb8b4d", "e0975c" : "75522d", "a85636" : "463319", "6f2919" : "1c140a" } --- > // DEFAULT > { "06ff00" : "06ff00"}, > // BLACK > { "06ff00" : "151515" }, > // GREY > { "06ff00" : "808080" }, > // WHITE > { "06ff00" : "e6e6e6" }, > // RED > { "06ff00" : "ff0000" }, > // ORANGE > { "06ff00" : "ff9100" }, > // YELLOW > { "06ff00" : "ffd400" }, > // GREEN > { "06ff00" : "06ff00" }, > // BLUE > { "06ff00" : "0080ff" }, > // PURPLE > { "06ff00" : "b700ff" }, > // PINK > { "06ff00" : "ff00ae" }, > // BROWN > { "06ff00" : "995200" } items\armors\biome\midnight\dark\dark.legs 18,28c18,41 < { "ffca8a" : "fffdb0", "e0975c" : "cbc234", "a85636" : "926e19", "6f2919" : "563f0f" }, < { "ffca8a" : "727272", "e0975c" : "414141", "a85636" : "1c1c1c", "6f2919" : "0b0b0b" }, < { "ffca8a" : "e9e9e9", "e0975c" : "727272", "a85636" : "333333", "6f2919" : "161616" }, < { "ffca8a" : "fa5f53", "e0975c" : "bc1d1d", "a85636" : "76141b", "6f2919" : "460c12" }, < { "ffca8a" : "ffb05a", "e0975c" : "c36a22", "a85636" : "833d12", "6f2919" : "512209" }, < { "ffca8a" : "fae153", "e0975c" : "b1981c", "a85636" : "7d6214", "6f2919" : "47340a" }, < { "ffca8a" : "8ed563", "e0975c" : "498737", "a85636" : "1e4b19", "6f2919" : "0b200a" }, < { "ffca8a" : "47c8f8", "e0975c" : "1b79b5", "a85636" : "10386d", "6f2919" : "091d3f" }, < { "ffca8a" : "be69f4", "e0975c" : "8532bf", "a85636" : "4e187c", "6f2919" : "290c46" }, < { "ffca8a" : "fc72f8", "e0975c" : "a239a3", "a85636" : "681f6f", "6f2919" : "35103b" }, < { "ffca8a" : "bb8b4d", "e0975c" : "75522d", "a85636" : "463319", "6f2919" : "1c140a" } --- > // DEFAULT > { "06ff00" : "06ff00"}, > // BLACK > { "06ff00" : "151515" }, > // GREY > { "06ff00" : "808080" }, > // WHITE > { "06ff00" : "e6e6e6" }, > // RED > { "06ff00" : "ff0000" }, > // ORANGE > { "06ff00" : "ff9100" }, > // YELLOW > { "06ff00" : "ffd400" }, > // GREEN > { "06ff00" : "06ff00" }, > // BLUE > { "06ff00" : "0080ff" }, > // PURPLE > { "06ff00" : "b700ff" }, > // PINK > { "06ff00" : "ff00ae" }, > // BROWN > { "06ff00" : "995200" } items\armors\biome\midnight\dark\darkchest.chest 27,37c27,50 < { "ffca8a" : "fffdb0", "e0975c" : "cbc234", "a85636" : "926e19", "6f2919" : "563f0f" }, < { "ffca8a" : "727272", "e0975c" : "414141", "a85636" : "1c1c1c", "6f2919" : "0b0b0b" }, < { "ffca8a" : "e9e9e9", "e0975c" : "727272", "a85636" : "333333", "6f2919" : "161616" }, < { "ffca8a" : "fa5f53", "e0975c" : "bc1d1d", "a85636" : "76141b", "6f2919" : "460c12" }, < { "ffca8a" : "ffb05a", "e0975c" : "c36a22", "a85636" : "833d12", "6f2919" : "512209" }, < { "ffca8a" : "fae153", "e0975c" : "b1981c", "a85636" : "7d6214", "6f2919" : "47340a" }, < { "ffca8a" : "8ed563", "e0975c" : "498737", "a85636" : "1e4b19", "6f2919" : "0b200a" }, < { "ffca8a" : "47c8f8", "e0975c" : "1b79b5", "a85636" : "10386d", "6f2919" : "091d3f" }, < { "ffca8a" : "be69f4", "e0975c" : "8532bf", "a85636" : "4e187c", "6f2919" : "290c46" }, < { "ffca8a" : "fc72f8", "e0975c" : "a239a3", "a85636" : "681f6f", "6f2919" : "35103b" }, < { "ffca8a" : "bb8b4d", "e0975c" : "75522d", "a85636" : "463319", "6f2919" : "1c140a" } --- > // DEFAULT > { "06ff00" : "06ff00"}, > // BLACK > { "06ff00" : "151515" }, > // GREY > { "06ff00" : "808080" }, > // WHITE > { "06ff00" : "e6e6e6" }, > // RED > { "06ff00" : "ff0000" }, > // ORANGE > { "06ff00" : "ff9100" }, > // YELLOW > { "06ff00" : "ffd400" }, > // GREEN > { "06ff00" : "06ff00" }, > // BLUE > { "06ff00" : "0080ff" }, > // PURPLE > { "06ff00" : "b700ff" }, > // PINK > { "06ff00" : "ff00ae" }, > // BROWN > { "06ff00" : "995200" } items\armors\decorative\costumes\fairy\fairy.back 19,20d18 < // PINK < { "ffca8a" : "eab3db", "e0975c" : "d35eae", "a85636" : "97276d", "6f2919" : "59163f" }, items\armors\other\bonusarmor\bonusarmor.chest 6c6 < "rarity" : "Legendary", --- > "rarity" : "Rare", items\armors\other\bonusarmor\bonusarmor.head 6c6 < "rarity" : "Legendary", --- > "rarity" : "Rare", items\armors\other\bonusarmor\bonusarmor.legs 6c6 < "rarity" : "Legendary", --- > "rarity" : "Rare", items\armors\other\perfect\perfect.chest 27c27 < "levelFunction" : "manipulatorArmorLevelPowerMultiplierMultiplier", --- > "levelFunction" : "standardArmorLevelPowerMultiplierMultiplier", 37c37 < "levelFunction" : "acceleratorArmorLevelMaxEnergyMultiplier", --- > "levelFunction" : "standardArmorLevelMaxEnergyMultiplier", 42c42 < "levelFunction" : "separatorArmorLevelMaxHealthMultiplier", --- > "levelFunction" : "standardArmorLevelMaxHealthMultiplier", items\armors\other\perfect\perfect.head 19c19 < "levelFunction" : "manipulatorArmorLevelPowerMultiplierMultiplier", --- > "levelFunction" : "standardArmorLevelPowerMultiplierMultiplier", 29c29 < "levelFunction" : "acceleratorArmorLevelMaxEnergyMultiplier", --- > "levelFunction" : "standardArmorLevelMaxEnergyMultiplier", 34c34 < "levelFunction" : "separatorArmorLevelMaxHealthMultiplier", --- > "levelFunction" : "standardArmorLevelMaxHealthMultiplier", items\armors\other\perfect\perfect.legs 18c18 < "levelFunction" : "manipulatorArmorLevelPowerMultiplierMultiplier", --- > "levelFunction" : "standardArmorLevelPowerMultiplierMultiplier", 28c28 < "levelFunction" : "acceleratorArmorLevelMaxEnergyMultiplier", --- > "levelFunction" : "standardArmorLevelMaxEnergyMultiplier", 33c33 < "levelFunction" : "separatorArmorLevelMaxHealthMultiplier", --- > "levelFunction" : "standardArmorLevelMaxHealthMultiplier", items\generic\crafting\cellmatter.item 7c7 < "description" : "Cell Matter - it can be used this to craft unspeakable things.", --- > "description" : "Cell Matter - it can be used to craft unspeakable things.", items\generic\food\tier3\pineapplejam.consumable 28,29c28 < "emitters" : [ "drinking" ], < "learnBlueprintsOnPickup" : [ "pineapplejuice" ] --- > "emitters" : [ "drinking" ] items\materials\platinumblock.matitem 12d11 < "learnBlueprintsOnPickup" : [ "platinumblock" ], items\throwables\thorngrenade.thrownitem 28,32c28 < }, < < "learnBlueprintsOnPickup" : [ < "thorngrenade" < ] --- > } leveling\levelingmultipliers.functions 128a129,153 > // Applies a StatBaseMultiplier to monster health > "spaceMonsterLevelHealthMultiplier" : [ "linear", "clamp", > [0, 1.0], > [1, 1.0], > [2, 2.0], > [3, 3.5], > [4, 6.0], > [5, 8.5], > [6, 11.0], > [7, 16.0] > ], > > // This is used as a straight multiplier of power, unlike some other powerMultiplier > // things which act as a value modifier to the powerMultiplier stat > "spaceMonsterLevelPowerMultiplier" : [ "linear", "clamp", > [0, 1.00], > [1, 1.00], > [2, 1.75], > [3, 3.50], > [4, 7.00], > [5, 14.0], > [6, 26.0], > [7, 54.0] > ], > monsters\groundMovement.lua 40c40 < if world.rectCollision(jumpRegion, {"Null", "Block", "Dynamic"}) then --- > if world.rectCollision(jumpRegion, {"Null", "Block", "Dynamic", "Slippery"}) then 54c54 < if not world.rectCollision(jumpClearanceRegion, {"Null", "Block", "Dynamic"}) then --- > if not world.rectCollision(jumpClearanceRegion, {"Null", "Block", "Dynamic", "Slippery"}) then 88c88 < if world.rectCollision(blockedRect, {"Null", "Block", "Dynamic"}) then --- > if world.rectCollision(blockedRect, {"Null", "Block", "Dynamic", "Slippery"}) then monsters\monster.lua 28d27 < BData:setPosition("spawn", storage.spawnPosition) 30,31c29,31 < self.behavior = root.behavior(config.getParameter("behavior"), sb.jsonMerge(config.getParameter("behaviorConfig", {}), skillBehaviorConfig())) < self.behaviorState = self.behavior:init(_ENV) --- > self.behavior = behavior.behavior(config.getParameter("behavior"), sb.jsonMerge(config.getParameter("behaviorConfig", {}), skillBehaviorConfig()), _ENV) > self.board = self.behavior:blackboard() > self.board:setPosition("spawn", storage.spawnPosition) 42c42 < script.setUpdateDelta(1) --- > script.setUpdateDelta(config.getParameter("initialScriptDelta", 5)) 44c44 < self.behaviorTickRate = config.getParameter("behaviorUpdateDelta", 5) --- > self.behaviorTickRate = config.getParameter("behaviorUpdateDelta", 2) 48c48 < BData:setNumber("facingDirection", mcontroller.facingDirection()) --- > self.board:setNumber("facingDirection", mcontroller.facingDirection()) 57c57 < BData:setEntity("damageSource", notification.sourceEntityId) --- > self.board:setEntity("damageSource", notification.sourceEntityId) 78c78 < self.deathBehavior = root.behavior(deathBehavior, config.getParameter("behaviorConfig", {})) --- > self.deathBehavior = behavior.behavior(deathBehavior, config.getParameter("behaviorConfig", {}), _ENV, self.behavior:blackboard()) 89a90,91 > > monster.setAnimationParameter("chains", config.getParameter("chains")) 92,93d93 < -- This is called in update() using pcall < -- to catch errors 94a95,98 > if config.getParameter("facingMode", "control") == "transformation" then > mcontroller.controlFace(1) > end > 126d129 < 138d140 < BData:clearControls() 141,145d142 < BData:setEntity("self", entity.id()) < BData:setPosition("self", mcontroller.position()) < BData:setNumber("dt", dt * self.behaviorTickRate) < BData:setNumber("facingDirection", self.facingDirection or mcontroller.facingDirection()) < 147c144,150 < self.behavior:run(self.behaviorState, dt * self.behaviorTickRate) --- > local board = self.behavior:blackboard() > board:setEntity("self", entity.id()) > board:setPosition("self", mcontroller.position()) > board:setNumber("dt", dt * self.behaviorTickRate) > board:setNumber("facingDirection", self.facingDirection or mcontroller.facingDirection()) > > self.behavior:run(dt * self.behaviorTickRate) 148a152 > BGroup:updateGroups() 150d153 < BData:update() 171,172d173 < < movement() 192c193 < BData:setEntity("interactionSource", args.sourceId) --- > self.board:setEntity("interactionSource", args.sourceId) 202,203c203 < local deathBehaviorState = self.deathBehavior:init(_ENV) < self.deathBehavior:run(deathBehaviorState, script.updateDt()) --- > self.deathBehavior:run(script.updateDt()) 210a211 > BGroup:uninit() monsters\boss\bossMonster.lua 275c275 < return world.rectTileCollision(rect.translate(bounds, mcontroller.position()), {"Null", "Block", "Dynamic"}) --- > return world.rectTileCollision(rect.translate(bounds, mcontroller.position()), {"Null", "Block", "Dynamic", "Slippery"}) 279c279 < if not speed then speed = mcontroller.baseParameters().flySpeed end --- > if speed then mcontroller.controlParameters({flySpeed = speed}) end 281c281 < mcontroller.controlFly(vec2.mul(toPosition, speed)) --- > mcontroller.controlFly(toPosition) monsters\boss\apebossprojector\apebossprojector.lua 25c25 < --- > 80c80 < -- Then fire --- > -- Then fire 181c181 < mcontroller.controlFly(vec2.mul(vec2.norm(toApproach), mcontroller.baseParameters().flySpeed)) --- > mcontroller.controlFly(toApproach) monsters\boss\guardianboss\guardian.lua 23d22 < BData:setPosition("spawn", storage.spawnPosition) 25,26c24,26 < self.behavior = root.behavior(config.getParameter("behavior"), config.getParameter("behaviorConfig", {})) < self.behaviorState = self.behavior:init(_ENV) --- > self.behavior = behavior.behavior(config.getParameter("behavior"), config.getParameter("behaviorConfig", {}), _ENV) > self.board = self.behavior:blackboard() > self.board:setPosition("spawn", storage.spawnPosition) 36c36 < BData:setEntity("damageSource", notification.sourceEntityId) --- > self.board:setEntity("damageSource", notification.sourceEntityId) 95d94 < BData:clearControls() 101,104c100,103 < BData:setEntity("self", entity.id()) < BData:setPosition("self", mcontroller.position()) < BData:setNumber("dt", dt) < BData:setNumber("facingDirection", self.facingDirection or mcontroller.facingDirection()) --- > self.board:setEntity("self", entity.id()) > self.board:setPosition("self", mcontroller.position()) > self.board:setNumber("dt", dt) > self.board:setNumber("facingDirection", self.facingDirection or mcontroller.facingDirection()) 108c107 < self.behavior:run(self.behaviorState, dt) --- > self.behavior:run(dt) 110d108 < BData:update() 126,127d123 < < movement() monsters\boss\guardianminion\collidingminion.monstertype 26c26 < "baseTargetRadialVelocity" : -5, --- > "targetRadialVelocity" : -5, monsters\boss\guardianminion\guardianminion.lua 20d19 < self.flySpeed = mcontroller.baseParameters().flySpeed 118,119c117,118 < local toTarget = vec2.norm(world.distance(targetPosition, mcontroller.position())) < mcontroller.controlFly(vec2.mul(toTarget, self.flySpeed)) --- > local toTarget = world.distance(targetPosition, mcontroller.position()) > mcontroller.controlFly(toTarget) monsters\bugs\bug.lua 20,21d19 < self.flySpeed = config.getParameter("buzzing.flySpeed") < 37c35 < if world.lineTileCollision(position, minGroundLine, {"Null", "Block", "Dynamic"}) or world.liquidAt(minGroundLine) then --- > if world.lineTileCollision(position, minGroundLine, {"Null", "Block", "Dynamic", "Slippery"}) or world.liquidAt(minGroundLine) then 39c37 < elseif not world.lineTileCollision(position, maxGroundLine, {"Null", "Block", "Dynamic"}) or not world.liquidAt(maxGroundLine) then --- > elseif not world.lineTileCollision(position, maxGroundLine, {"Null", "Block", "Dynamic", "Slippery"}) or not world.liquidAt(maxGroundLine) then 61c59 < mcontroller.controlFly(vec2.mul(self.direction, self.flySpeed)) --- > mcontroller.controlFly(self.direction) 82c80 < end \ No newline at end of file --- > end monsters\bugs\ashsprite\ashsprite.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\aurorabee\aurorabee.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\beebug\beebug.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\blueback\blueback.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\brightstripe\brightstripe.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\butterbee\butterbee.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\cinderfly\cinderfly.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\dewhopper\dewhopper.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\driftbell\driftbell.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\dustmoth\dustmoth.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\fawnfly\fawnfly.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\fireflyspawner\fireflyspawner.monstertype 28,30c28 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\fireygiant\fireygiant.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\flameroach\flameroach.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\flyspawner\flyspawner.monstertype 28,30c28 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\frostfleck\frostfleck.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\frostfly\frostfly.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\gasgiant\gasgiant.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\glowbug\glowbug.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\goldbuck\goldbuck.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\greentip\greentip.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\heathugger\heathugger.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\hivehog\hivehog.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\icetip\icetip.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\lavahopper\lavahopper.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\muddancer\muddancer.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\mudstag\mudstag.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\orphanfly\orphanfly.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\phoenixfly\phoenixfly.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\polarmoth\polarmoth.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\redwing\redwing.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\sandclown\sandclown.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\scuttleploom\scuttleploom.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\seahornet\seahornet.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\shadowmoth\shadowmoth.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\shardwing\shardwing.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\shellcreep\shellcreep.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\snowskater\snowskater.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\stinkjack\stinkjack.monstertype 31,33c31 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\sunskipper\sunskipper.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\thornbee\thornbee.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\tidefly\tidefly.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\vineclimber\vineclimber.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\wavebird\wavebird.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\bugs\xenofly\xenofly.monstertype 32,34c32 < "rotationChangeInterval" : 1, < < "flySpeed" : 3 --- > "rotationChangeInterval" : 1 monsters\crawlers\crustoise\crustoise.monstertype 102d101 < "power" : 0, monsters\crawlers\oculob\oculob.monstertype 86d85 < "power" : 0, monsters\crawlers\pulpin\pulpin.monstertype 53d52 < "power" : 9, 111d109 < "power" : 0, 123d120 < "power" : 0, monsters\crawlers\tintic\tintic.monstertype 49d48 < "power" : 10, monsters\crawlers\triplod\triplod.monstertype 49d48 < "power" : 5, monsters\dungeon\apexbrainmutant\apexbrainmutant.monstertype 43d42 < "power" : 4, monsters\dungeon\giftmonster\behavior.lua 62c62 < if world.rectTileCollision(bounds, {"Null", "Block", "Dynamic"}) then --- > if world.rectTileCollision(bounds, {"Null", "Block", "Dynamic", "Slippery"}) then monsters\dungeon\glitchspider\glitchspider.monstertype 48d47 < "power" : 3, monsters\dungeon\po\behavior.lua 124c124 < return world.rectTileCollision(groundRegion, {"Null", "Block", "Dynamic"}) --- > return world.rectTileCollision(groundRegion, {"Null", "Block", "Dynamic", "Slippery"}) monsters\dungeon\pogolem\pogolem.monstertype 43d42 < "power" : 4, 69d67 < "power" : 2, monsters\flyers\bobfae\bobfae.monstertype 126d125 < "power" : 0, monsters\flyers\paratail\paratail.monstertype 91d90 < "power" : 8, monsters\flyers\pteropod\pteropod.monstertype 46d45 < "power" : 10, monsters\flyers\scandroid\scandroid.monstertype 61d60 < "power" : 10, monsters\flyers\tentaclebomb\tentaclebomb.monstertype 91d90 < "power" : 8, monsters\generated\swimming\swimmingMonster.lua 134c134 < mcontroller.controlFly(vec2.mul({ moveDirection[1], moveDirection[2] }, 1000)) --- > mcontroller.controlFly(moveDirection) 137c137,138 < mcontroller.controlFly(vec2.mul({ moveDirection[1], moveDirection[2] }, self.slowSpeed)) --- > mcontroller.controlParameters({flySpeed = self.slowSpeed}) > mcontroller.controlFly(moveDirection) monsters\generated\swimming\smallfish\smallFish.lua 91c91 < mcontroller.controlFly(vec2.mul({ self.movement[1], self.movement[2] }, mcontroller.baseParameters().flySpeed)) --- > mcontroller.controlFly(self.movement) monsters\ghosts\ignome\ignome.monstertype 43c43 < "maximumRange" : 10, --- > "maximumRange" : 50, monsters\ghosts\pyromantle\pyromantle.monstertype 59d58 < "power" : 2, monsters\ghosts\tentacleghost\tentacleghost.monstertype 58d57 < "power" : 2, monsters\ghosts\wisper\wisper.monstertype 57d56 < "power" : 2, monsters\mission\kluexsentry\kluexsentry.monstertype 43d42 < "power" : 10, monsters\mission\moontant\moontant.monstertype 47d46 < "power" : 7, monsters\pets\groundPet.lua 7c7 < --- > 225c225 < --- > 359c359 < if world.lineTileCollision({position[1], position[2] + bounds[2] + 1.5}, { position[1] + boundsEdge + direction, position[2] + bounds[2] + 1.5}, {"Null", "Block", "Dynamic"}) then --- > if world.lineTileCollision({position[1], position[2] + bounds[2] + 1.5}, { position[1] + boundsEdge + direction, position[2] + bounds[2] + 1.5}, {"Null", "Block", "Dynamic", "Slippery"}) then monsters\walkers\adultpoptop\motherpoptop.monstertype 119c119,120 < "monsterType" : "poptop" --- > "monsterType" : "poptop", > "position" : {"key" : "self"} monsters\walkers\anglure\anglure.monstertype 47d46 < "power" : 7, 95d93 < "power" : 0, monsters\walkers\crabcano\crabcano.monstertype 53d52 < "power" : 8, 95,96c94,96 < "projectileParameters" : {}, < "power" : 0, --- > "projectileParameters" : { > "power" : 0 > }, monsters\walkers\crutter\crutter.monstertype 44d43 < "power" : 10, monsters\walkers\fennix\fennix.monstertype 66d65 < "power" : 10, monsters\walkers\mandraflora\mandraflora.monstertype 95d94 < "power" : 0, monsters\walkers\miasmop\miasmop.monstertype 70d69 < "power" : 5, monsters\walkers\nutmidge\nutmidge.monstertype 129d128 < "power" : 0, monsters\walkers\orbide\orbide.monstertype 112d111 < "power" : 0, monsters\walkers\pipkin\pipkin.monstertype 45d44 < "power" : 12, monsters\walkers\scaveran\scaveran.monstertype 44d43 < "power" : 5, monsters\walkers\smoglin\smoglin.monstertype 47d46 < "power" : 9, monsters\walkers\snaunt\snaunt.monstertype 43d42 < "power" : 10, monsters\walkers\snuffish\snuffish.monstertype 55d54 < "power" : 10, monsters\walkers\sporgus\sporgus.monstertype 45,47c45 < "projectileParameters" : { < }, < "power" : 4, --- > "projectileParameters" : {}, monsters\walkers\voltip\voltip.monstertype 47d46 < "power" : 8, npcs\bmain.lua 28d27 < BData:setPosition("spawn", storage.spawnPosition) 36,37c35,38 < self.behavior = root.behavior(config.getParameter("behavior"), config.getParameter("behaviorConfig", {})) < self.behaviorState = self.behavior:init(_ENV) --- > self.behavior = behavior.behavior(config.getParameter("behavior"), config.getParameter("behaviorConfig", {}), _ENV) > > self.board = self.behavior:blackboard() > self.board:setPosition("spawn", storage.spawnPosition) 41c42 < script.setUpdateDelta(1) --- > script.setUpdateDelta(10) 45c46 < self.behaviorConfig = parseArgs(personality().behaviorConfig, self.behaviorConfig) --- > self.behaviorConfig = applyDefaults(personality().behaviorConfig, self.behaviorConfig) 57,58d57 < self.behaviorTickRate = 10 < self.behaviorTick = math.random(1, self.behaviorTickRate) 147,149c146 < if self.behaviorTick >= self.behaviorTickRate then < self.behaviorTick = self.behaviorTick - self.behaviorTickRate < mcontroller.clearControls() --- > mcontroller.clearControls() 151,163c148,159 < self.tradingEnabled = false < self.setFacingDirection = false < self.primaryFire = false < self.altFire = false < self.controlAggressive = false < self.lounge = false < self.playing = false < self.moving = false < < BData:clearControls() < BData:setEntity("self", entity.id()) < BData:setPosition("self", mcontroller.position()) < BData:setNumber("facingDirection", mcontroller.facingDirection()) --- > self.tradingEnabled = false > self.setFacingDirection = false > self.primaryFire = false > self.altFire = false > self.controlAggressive = false > self.lounge = false > self.playing = false > self.moving = false > > self.board:setEntity("self", entity.id()) > self.board:setPosition("self", mcontroller.position()) > self.board:setNumber("facingDirection", mcontroller.facingDirection()) 165,168c161,164 < if self.behavior then < self.behavior:run(self.behaviorState, dt * self.behaviorTickRate) < end < BGroup:updateGroups() --- > if self.behavior then > self.behavior:run(dt) > end > BGroup:updateGroups() 170,192c166,186 < if self.primaryFire then < npc.beginPrimaryFire() < else < npc.endPrimaryFire() < end < if self.altFire then < npc.beginAltFire() < else < npc.endAltFire() < end < if self.controlAggressive then < npc.setAggressive(true) < else < npc.setAggressive(config.getParameter("aggressive", false)) < end < if not self.lounge and npc.isLounging() then < npc.resetLounging() < end < if not self.playing and self.playTarget then < if world.entityExists(self.playTarget) then < world.callScriptedEntity(self.playTarget, "npcToy.notifyNpcPlayEnd", entity.id()) < end < self.playTarget = nil --- > if self.primaryFire then > npc.beginPrimaryFire() > else > npc.endPrimaryFire() > end > if self.altFire then > npc.beginAltFire() > else > npc.endAltFire() > end > if self.controlAggressive then > npc.setAggressive(true) > else > npc.setAggressive(config.getParameter("aggressive", false)) > end > if not self.lounge and npc.isLounging() then > npc.resetLounging() > end > if not self.playing and self.playTarget then > if world.entityExists(self.playTarget) then > world.callScriptedEntity(self.playTarget, "npcToy.notifyNpcPlayEnd", entity.id()) 194,200c188 < < BData:update() < < self.interacted = false < self.damaged = false < self.stunned = false < self.notifications = {} --- > self.playTarget = nil 202d189 < self.behaviorTick = self.behaviorTick + 1 204c191,194 < movement() --- > self.interacted = false > self.damaged = false > self.stunned = false > self.notifications = {} 238c228 < BData:setEntity("interactionSource", args.sourceId) --- > self.board:setEntity("interactionSource", args.sourceId) 244c234 < BData:setEntity("damageSource", args.sourceId) --- > self.board:setEntity("damageSource", args.sourceId) npcs\merchantpools.config 314a315,374 > "electronicgoodsmerchant" : [ > [0, [ > { "item" : { "name" : "stickofram" } }, > { "item" : { "name" : "currentcorn" }, "rarity" : 0.5 } > ]] > ], > > "foodgoodsmerchant" : [ > [0, [ > { "item" : { "name" : "bread" } }, > { "item" : { "name" : "banana" }, "rarity" : 0.5 } > ]] > ], > > "medicalgoodsmerchant" : [ > [0, [ > { "item" : { "name" : "nanowrap" } }, > { "item" : { "name" : "redstim" }, "rarity" : 0.5 } > ]] > ], > > "militarygoodsmerchant" : [ > [0, [ > { "item" : { "name" : "throwingknife" } }, > { "item" : { "name" : "bomb" }, "rarity" : 0.5 } > ]] > ], > > "spacemerchant" : [ > [0, [ > { "item" : { "name" : "stickofram" } }, > { "item" : { "name" : "currentcorn" }, "rarity" : 0.5 }, > { "item" : { "name" : "bread" } }, > { "item" : { "name" : "banana" }, "rarity" : 0.5 }, > { "item" : { "name" : "nanowrap" } }, > { "item" : { "name" : "redstim" }, "rarity" : 0.5 }, > { "item" : { "name" : "throwingknife" } }, > { "item" : { "name" : "bomb" }, "rarity" : 0.5 } > ]] > ], > > "stationmerchant" : [ > [0, [ > { "item" : { "name" : "stationchair" }, "rarity" : 0.2 }, > { "item" : { "name" : "stationtable" }, "rarity" : 0.2 }, > { "item" : { "name" : "stationlighth" }, "rarity" : 0.2 }, > { "item" : { "name" : "stationlightv" }, "rarity" : 0.2 }, > { "item" : { "name" : "stationbench" }, "rarity" : 0.2 }, > { "item" : { "name" : "stationcrate" }, "rarity" : 0.2 }, > { "item" : { "name" : "stationdoor" }, "rarity" : 0.2 }, > { "item" : { "name" : "stationdoorlarge" }, "rarity" : 0.2 }, > { "item" : { "name" : "stationhatch" }, "rarity" : 0.2 }, > { "item" : { "name" : "stationdisplay" }, "rarity" : 0.2 }, > { "item" : { "name" : "stationhologram" }, "rarity" : 0.2 }, > { "item" : { "name" : "stationceilingvent" }, "rarity" : 0.2 }, > { "item" : { "name" : "stationconsole" }, "rarity" : 0.2 }, > { "item" : { "name" : "stationwallpanel" }, "rarity" : 0.2 } > ]] > ], > 604a665,693 > { "item" : { "name" : "mercenarychest" }, "rarity" : 0.04 }, > { "item" : { "name" : "mercenaryhead" }, "rarity" : 0.04 }, > { "item" : { "name" : "mercenarylegs" }, "rarity" : 0.04 }, > { "item" : { "name" : "silverarmorchest" }, "rarity" : 0.04 }, > { "item" : { "name" : "silverarmorhead" }, "rarity" : 0.04 }, > { "item" : { "name" : "silverarmorlegs" }, "rarity" : 0.04 }, > { "item" : { "name" : "medicchest" }, "rarity" : 0.04 }, > { "item" : { "name" : "medichead" }, "rarity" : 0.04 }, > { "item" : { "name" : "mediclegs" }, "rarity" : 0.04 }, > { "item" : { "name" : "medicback" }, "rarity" : 0.04 }, > { "item" : { "name" : "trackerhead" }, "rarity" : 0.04 }, > { "item" : { "name" : "trackerchest" }, "rarity" : 0.04 }, > { "item" : { "name" : "trackerlegs" }, "rarity" : 0.04 }, > { "item" : { "name" : "goldarmorchest" }, "rarity" : 0.04 }, > { "item" : { "name" : "goldarmorhead" }, "rarity" : 0.04 }, > { "item" : { "name" : "goldarmorlegs" }, "rarity" : 0.04 }, > { "item" : { "name" : "voyagerchest" }, "rarity" : 0.04 }, > { "item" : { "name" : "voyagerhead" }, "rarity" : 0.04 }, > { "item" : { "name" : "voyagerlegs" }, "rarity" : 0.04 }, > { "item" : { "name" : "pathfinderchest" }, "rarity" : 0.04 }, > { "item" : { "name" : "pathfinderhead" }, "rarity" : 0.04 }, > { "item" : { "name" : "pathfinderlegs" }, "rarity" : 0.04 }, > { "item" : { "name" : "explorerchest" }, "rarity" : 0.04 }, > { "item" : { "name" : "explorerlegs" }, "rarity" : 0.04 }, > { "item" : { "name" : "camochest" }, "rarity" : 0.04 }, > { "item" : { "name" : "camohead" }, "rarity" : 0.04 }, > { "item" : { "name" : "camolegs" }, "rarity" : 0.04 } > ]], > [5.9, [ npcs\crew\crewmemberpenguinmerc.npctype 13a14,36 > }, > > "items" : { > "default" : [ > [0, [ > { > "legs" : [ > { "name" : "penguinvikinghat", "parameters" : { "colorIndex" : [0,2,3,4] } }, > { "name" : "penguinscanner", "parameters" : { "colorIndex" : [0,2,3] } }, > { "name" : "penguinberet", "parameters" : { "colorIndex" : [0] } }, > { "name" : "penguinbandana", "parameters" : { "colorIndex" : [0] } }, > { "name" : "penguincowboy", "parameters" : { "colorIndex" : [0,1] } }, > { "name" : "penguinhelmet", "parameters" : { "colorIndex" : [0] } } > ], > "primary" : [ "npcpistol" ], > "sheathedprimary" : [ "npcpistol" ] > }, > { > "primary" : [ "npcpistol" ], > "sheathedprimary" : [ "npcpistol" ] > } > ] ] > ] 15c38 < } --- > } \ No newline at end of file npcs\mission\penguinscientist.npctype 15,16c15 < "I think I could get that running a little better. I'm going to build the Shockhopper MK II!" < --- > "Thanks for helping me test my mech, friendo! I'll see you back at my workshop!" 19a19,76 > }, > "chatSounds" : { > "avian" : { > "male" : [ > "/sfx/humanoid/human_chatter_female1.ogg" > ], > "female" : [ > "/sfx/humanoid/human_chatter_female1.ogg" > ] > }, > "apex" : { > "male" : [ > "/sfx/humanoid/human_chatter_female1.ogg" > ], > "female" : [ > "/sfx/humanoid/human_chatter_female1.ogg" > ] > }, > "floran" : { > "male" : [ > "/sfx/humanoid/human_chatter_female1.ogg" > ], > "female" : [ > "/sfx/humanoid/human_chatter_female1.ogg" > ] > }, > "glitch" : { > "male" : [ > "/sfx/humanoid/human_chatter_female1.ogg" > ], > "female" : [ > "/sfx/humanoid/human_chatter_female1.ogg" > ] > }, > "human" : { > "male" : [ > "/sfx/humanoid/human_chatter_female1.ogg" > ], > "female" : [ > "/sfx/humanoid/human_chatter_female1.ogg" > ] > }, > "hylotl" : { > "male" : [ > "/sfx/humanoid/human_chatter_female1.ogg" > ], > "female" : [ > "/sfx/humanoid/human_chatter_female1.ogg" > ] > }, > "default" : { > "male" : [ > "/sfx/humanoid/human_chatter_female1.ogg" > ], > "female" : [ > "/sfx/humanoid/human_chatter_female1.ogg" > ] > } 33a91,100 > }, > > "items" : { > "override" : [ > [0, [ > { > "legs" : [ { "name" : "penguinglasses", "parameters" : { "colorIndex" : [0] } } ] > } > ] ] > ] objects\apex\apexapesign\apexapesign.frames 2d1 < objects\apex\apexapesign\apexapesign.object 8a9,12 > "description" : "Big Ape is All Seeing!", > "shortdescription" : "Big Ape Poster", > "race" : "apex", > 17,20d20 < "description" : "Big Ape is All Seeing!", < "shortdescription" : "Big Ape Poster", < "race" : "apex", < 26,27d25 < "frames" : 1, < "animationCycle" : 0.5, objects\apex\apexcoolcomputer\apexcoolcomputer.object 23c23,33 < "dualImage" : "apexcoolcomputer.png:.off", --- > "image" : "apexcoolcomputer.png:.off", > "imagePosition" : [-10, 0], > > "direction" : "left", > "flipImages" : true, > > "spaces" : [ [-1, 0], [0, 0], [-1, 1], [0, 1] ], > "anchors" : [ "bottom" ] > }, > { > "image" : "apexcoolcomputer.png:.off", 26c36,38 < "spaceScan" : 0.1, --- > "direction" : "right", > > "spaces" : [ [-1, 0], [0, 0], [-1, 1], [0, 1] ], objects\apex\apexstoragelocker\apexstoragelocker.object 34,35c34,35 < "openSounds" : [ "/sfx/objects/chest_small_open.ogg" ], < "closeSounds" : [ "/sfx/objects/chest_small_close.ogg" ], --- > "openSounds" : [ "/sfx/objects/gunchest_open.ogg" ], > "closeSounds" : [ "/sfx/objects/gunchest_close.ogg" ], objects\apex\classicglass\classicglass.object 3c3 < "colonyTags" : ["apex","apexmansion"], --- > "colonyTags" : ["apex","apexmansion","cooking"], 24,25d23 < "frames" : 1, < "animationCycle" : 0.5, objects\apex\classicplate\classicplate.object 3c3 < "colonyTags" : ["apex","apexmansion"], --- > "colonyTags" : ["apex","apexmansion","cooking"], objects\apex\securitycamera\securitycamera.lua 48c48 < local blocks = world.collisionBlocksAlongLine(tipPosition, laserEndpoint, {"Null", "Block", "Dynamic"}, 1) --- > local blocks = world.collisionBlocksAlongLine(tipPosition, laserEndpoint, {"Null", "Block", "Dynamic", "Slippery"}, 1) objects\apex\turret\turret.lua 51c51 < local blocks = world.collisionBlocksAlongLine(tipPosition, laserEndpoint, {"Null", "Block", "Dynamic"}, 1) --- > local blocks = world.collisionBlocksAlongLine(tipPosition, laserEndpoint, {"Null", "Block", "Dynamic", "Slippery"}, 1) objects\avian\avianstoragelocker\avianstoragelocker.object 34,35c34,35 < "openSounds" : [ "/sfx/objects/chest_small_open.ogg" ], < "closeSounds" : [ "/sfx/objects/chest_small_close.ogg" ], --- > "openSounds" : [ "/sfx/objects/gunchest_open.ogg" ], > "closeSounds" : [ "/sfx/objects/gunchest_close.ogg" ], objects\biome\foundry\foundryelevator\foundryelevator.animation 7c7,12 < "off" : {}, --- > "off" : { > "properties" : { > "immediateSound" : "/sfx/objects/steel_elevator_hit.ogg", > "immediateSoundRangeMultiplier" : 0.5 > } > }, 10c15,16 < "persistentSound" : "/sfx/objects/steel_elevator_loop.ogg" --- > "persistentSound" : "/sfx/tech/composite_platform_loop.ogg", > "persistentSoundRangeMultiplier" : 0.5 objects\biome\foundry\foundryelevator\foundryelevatorlong.object 76a77 > "collisionKind" : "platform", objects\biome\foundry\foundryelevator\foundryelevatorshort.object 14c14 < --- > 22c22 < --- > 77a78 > "collisionKind" : "platform", objects\biome\scorchedcity\bombsheltershelf1\bombsheltershelf1.object 35,36c35,36 < "openSounds" : [ "/sfx/objects/woodenbox_open.ogg" ], < "closeSounds" : [ "/sfx/objects/woodenbox_close.ogg" ], --- > "openSounds" : [ "/sfx/objects/cardboardbox_open.ogg" ], > "closeSounds" : [ "/sfx/objects/cardboardbox_close.ogg" ], objects\biome\scorchedcity\scorchedcitybrokentank\scorchedcitybrokentank.object 30,31c30 < "anchors" : [ "bottom" ], < "collision" : "platform" --- > "anchors" : [ "bottom" ] objects\biome\scorchedcity\scorchedcitystoreshelf\scorchedcitystoreshelf.object 35,36c35,36 < "openSounds" : [ "/sfx/objects/woodenbox_open.ogg" ], < "closeSounds" : [ "/sfx/objects/woodenbox_close.ogg" ], --- > "openSounds" : [ "/sfx/objects/cardboardbox_open.ogg" ], > "closeSounds" : [ "/sfx/objects/cardboardbox_close.ogg" ], objects\bonus\tallchair\tallchair.object 37,38c37,40 < "sitPosition" : [2, 642] < --- > "sitPosition" : [2, 642], > "sitArmorCosmeticOverrides" : { > "head" : "toptophathead" > } objects\clues\apex\minidronerack\minidronerack.animation 9c9 < "frames" : 8, --- > "frames" : 3, objects\farmables\automato\wildautomatoseed.object 62c62,63 < "maxImmersion" : 0.125 --- > "maxImmersion" : 0.125, > "consumeSoilMoisture" : false objects\farmables\avesmingo\wildavesmingoseed.object 62c62,63 < "maxImmersion" : 0.125 --- > "maxImmersion" : 0.125, > "consumeSoilMoisture" : false objects\farmables\banana\wildbananaseed.object 61c61,62 < "maxImmersion" : 0.084 --- > "maxImmersion" : 0.084, > "consumeSoilMoisture" : false objects\farmables\beakseed\wildbeakseedseed.object 62c62,63 < "maxImmersion" : 0.25 --- > "maxImmersion" : 0.25, > "consumeSoilMoisture" : false objects\farmables\boltbulb\wildboltbulbseed.object 57c57,58 < "maxImmersion" : 0.25 --- > "maxImmersion" : 0.25, > "consumeSoilMoisture" : false objects\farmables\boneboo\wildbonebooseed.object 62c62,63 < "maxImmersion" : 0.125 --- > "maxImmersion" : 0.125, > "consumeSoilMoisture" : false objects\farmables\carrot\wildcarrotseed.object 57c57,58 < "maxImmersion" : 0.25 --- > "maxImmersion" : 0.25, > "consumeSoilMoisture" : false objects\farmables\chili\wildchiliseed.object 62c62,63 < "maxImmersion" : 0.1 --- > "maxImmersion" : 0.1, > "consumeSoilMoisture" : false objects\farmables\cocoa\wildcocoaseed.object 62c62,63 < "maxImmersion" : 0.125 --- > "maxImmersion" : 0.125, > "consumeSoilMoisture" : false objects\farmables\coffee\wildcoffeeseed.object 62c62,63 < "maxImmersion" : 0.125 --- > "maxImmersion" : 0.125, > "consumeSoilMoisture" : false objects\farmables\corn\wildcornseed.object 62c62,63 < "maxImmersion" : 0.1 --- > "maxImmersion" : 0.1, > "consumeSoilMoisture" : false objects\farmables\cotton\wildcottonseed.object 60c60,61 < "maxImmersion" : 0.125 --- > "maxImmersion" : 0.125, > "consumeSoilMoisture" : false objects\farmables\crystalplant\wildcrystalplantseed.object 56c56,57 < "maxImmersion" : 0.25 --- > "maxImmersion" : 0.25, > "consumeSoilMoisture" : false objects\farmables\currentcorn\wildcurrentcornseed.object 57c57,58 < "maxImmersion" : 0.25 --- > "maxImmersion" : 0.25, > "consumeSoilMoisture" : false objects\farmables\diodia\wilddiodiaseed.object 57c57,58 < "maxImmersion" : 0.25 --- > "maxImmersion" : 0.25, > "consumeSoilMoisture" : false objects\farmables\dirturchin\wilddirturchinseed.object 57c57,58 < "maxImmersion" : 0.25 --- > "maxImmersion" : 0.25, > "consumeSoilMoisture" : false objects\farmables\eggshoot\wildeggshootseed.object 57c57,58 < "maxImmersion" : 0.25 --- > "maxImmersion" : 0.25, > "consumeSoilMoisture" : false objects\farmables\feathercrown\wildfeathercrownseed.object 57c57,58 < "maxImmersion" : 0.25 --- > "maxImmersion" : 0.25, > "consumeSoilMoisture" : false objects\farmables\grapes\wildgrapesseed.object 62c62,63 < "maxImmersion" : 0.125 --- > "maxImmersion" : 0.125, > "consumeSoilMoisture" : false objects\farmables\kiwi\wildkiwiseed.object 57c57,58 < "maxImmersion" : 0.5 --- > "maxImmersion" : 0.5, > "consumeSoilMoisture" : false objects\farmables\neonmelon\wildneonmelonseed.object 57c57,58 < "maxImmersion" : 0.25 --- > "maxImmersion" : 0.25, > "consumeSoilMoisture" : false objects\farmables\oculemon\wildoculemonseed.object 57c57,58 < "maxImmersion" : 0.17 --- > "maxImmersion" : 0.17, > "consumeSoilMoisture" : false objects\farmables\pearlpea\wildpearlpeaseed.object 62c62,63 < "maxImmersion" : 0.125 --- > "maxImmersion" : 0.125, > "consumeSoilMoisture" : false objects\farmables\pineapple\wildpineappleseed.object 57c57,58 < "maxImmersion" : 0.25 --- > "maxImmersion" : 0.25, > "consumeSoilMoisture" : false objects\farmables\potato\wildpotatoseed.object 57c57,58 < "maxImmersion" : 0.25 --- > "maxImmersion" : 0.25, > "consumeSoilMoisture" : false objects\farmables\pussplum\wildpussplumseed.object 57c57,58 < "maxImmersion" : 0.25 --- > "maxImmersion" : 0.25, > "consumeSoilMoisture" : false objects\farmables\rice\wildriceseed.object 62c62,63 < "maxImmersion" : 0.17 --- > "maxImmersion" : 0.17, > "consumeSoilMoisture" : false objects\farmables\sugarcane\wildsugarcaneseed.object 57c57,58 < "maxImmersion" : 0.1 --- > "maxImmersion" : 0.1, > "consumeSoilMoisture" : false objects\farmables\tomato\wildtomatoseed.object 62c62,63 < "maxImmersion" : 0.125 --- > "maxImmersion" : 0.125, > "consumeSoilMoisture" : false objects\farmables\toxictop\wildtoxictopseed.object 57c57,58 < "maxImmersion" : 0.25 --- > "maxImmersion" : 0.25, > "consumeSoilMoisture" : false objects\farmables\wartweed\wildwartweedseed.object 57c57,58 < "maxImmersion" : 0.25 --- > "maxImmersion" : 0.25, > "consumeSoilMoisture" : false objects\farmables\wheat\wildwheatseed.object 57c57,58 < "maxImmersion" : 0.125 --- > "maxImmersion" : 0.125, > "consumeSoilMoisture" : false objects\floran\floranstoragelocker\floranstoragelocker.object 34,35c34,35 < "openSounds" : [ "/sfx/objects/chest_small_open.ogg" ], < "closeSounds" : [ "/sfx/objects/chest_small_close.ogg" ], --- > "openSounds" : [ "/sfx/objects/gunchest_open.ogg" ], > "closeSounds" : [ "/sfx/objects/gunchest_close.ogg" ], objects\generic\arcadegame\arcadegamegui.config 36c36,45 < "scriptCanvas" : "scriptCanvas" --- > > "canvasClickCallbacks" : { > "scriptCanvas" : "canvasClickEvent" > }, > "canvasKeyCallbacks" : { > "scriptCanvas" : "canvasKeyEvent" > }, > > "scriptWidgetCallbacks" : [ > ] objects\generic\arcadegame\arcadegamegui.lua 102a103,105 > > gameCanvas = widget.bindCanvas("scriptCanvas") > widget.focus("scriptCanvas") 105a109,110 > gameCanvas:clear() > 122c127 < console.canvasDrawText("Congratulations, you escaped the dungeon!", {position = {25, 100}, width = 290, centered = true}, 15, {255, 255, 255, 255}) --- > gameCanvas:drawText("Congratulations, you escaped the dungeon!", {position = {25, 100}, width = 290, centered = true}, 15, {255, 255, 255, 255}) 127,128c132,133 < -- console.canvasDrawRect({0, renderer.height / 2, renderer.width, renderer.height}, {0, 0, 0}) < console.canvasDrawImageRect("/objects/generic/arcadegame/sky.png", {0, 0, 64, 64}, {0 + renderer.position[1], renderer.height / 2 + renderer.position[2], renderer.width + renderer.position[1], renderer.height + renderer.position[2]}) --- > -- gameCanvas:drawRect({0, renderer.height / 2, renderer.width, renderer.height}, {0, 0, 0}) > gameCanvas:drawImageRect("/objects/generic/arcadegame/sky.png", {0, 0, 64, 64}, {0 + renderer.position[1], renderer.height / 2 + renderer.position[2], renderer.width + renderer.position[1], renderer.height + renderer.position[2]}) 132,133c137,138 < -- console.canvasDrawRect({0, 0, renderer.width, renderer.height / 2}, {0, 20, 0}) < console.canvasDrawImageRect("/objects/generic/arcadegame/ground.png", {0, 0, 64, 64}, {0 + renderer.position[1], 0 + renderer.position[2], renderer.width + renderer.position[1], renderer.height / 2 + renderer.position[2]}) --- > -- gameCanvas:drawRect({0, 0, renderer.width, renderer.height / 2}, {0, 20, 0}) > gameCanvas:drawImageRect("/objects/generic/arcadegame/ground.png", {0, 0, 64, 64}, {0 + renderer.position[1], 0 + renderer.position[2], renderer.width + renderer.position[1], renderer.height / 2 + renderer.position[2]}) 137c142 < console.canvasDrawImage("/objects/generic/arcadegame/gui.png", {0, 0}) --- > gameCanvas:drawImage("/objects/generic/arcadegame/gui.png", {0, 0}) 234c239 < world.sendEntityMessage(console.sourceEntity(), "youwin") --- > world.sendEntityMessage(pane.sourceEntity(), "youwin") objects\generic\arcadegame\arcadegameobject.object 50c50 < "interactAction" : "ScriptConsole", --- > "interactAction" : "ScriptPane", objects\generic\arcadegame\renderer.lua 41c41 < console.canvasDrawImageRect(texture.image, {textureX, 0, textureX + 1, texture.height}, screenCoords, {wallfade, wallfade, wallfade, 255}) --- > gameCanvas:drawImageRect(texture.image, {textureX, 0, textureX + 1, texture.height}, screenCoords, {wallfade, wallfade, wallfade, 255}) objects\generic\capsulebig\capsulebig.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\generic\capsulemed\capsulemed.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\generic\capsulesmall\capsulesmall.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\generic\cropshipper\cropshipper.lua 60c60 < return not world.rectTileCollision(self.surfaceCheckArea, {"Null", "Block", "Dynamic"}) --- > return not world.rectTileCollision(self.surfaceCheckArea, {"Null", "Block", "Dynamic", "Slippery"}) objects\generic\durasteelelevator\durasteelelevatorlong.object 76a77 > "collisionKind" : "platform", objects\generic\durasteelelevator\durasteelelevatorshort.object 76a77 > "collisionKind" : "platform", objects\generic\fairylights\fairylights.object 4d3 < "printable" : true, objects\generic\flaghuman\flaghuman.object 11c11 < "description" : "The flag of the Protectorate. Use ^green;[E]^white; to bookmark a teleportation location.", --- > "description" : "The human flag. Use ^green;[E]^white; to bookmark a teleportation location.", objects\generic\fluorescentlight\fluorescentlight.object 38,51d37 < "image" : "fluorescentlightbottom.png:.", < "imagePosition" : [-8, 0], < < "animationParts" : { < "light" : "fluorescentlightbottom.png" < }, < "animationPosition" : [-8, 0], < "direction" : "right", < < "spaceScan" : 0.1, < "anchors" : [ "bottom" ] < }, < < { 81c67 < "imagePosition" : [-8, 1], --- > "imagePosition" : [-8, 2], 86c72 < "animationPosition" : [-8, 1], --- > "animationPosition" : [-8, 2], 90a77,90 > }, > > { > "image" : "fluorescentlightbottom.png:.", > "imagePosition" : [-8, 0], > > "animationParts" : { > "light" : "fluorescentlightbottom.png" > }, > "animationPosition" : [-8, 0], > "direction" : "right", > > "spaceScan" : 0.1, > "anchors" : [ "bottom" ] objects\generic\mechanicalelevator\mechanicalelevatorlong.object 76a77 > "collisionKind" : "platform", objects\generic\mechanicalelevator\mechanicalelevatorshort.object 76a77 > "collisionKind" : "platform", objects\generic\torch\torch.object 36c36 < --- > 52c52 < --- > 68c68 < --- > 84c84 < --- > 113,114d112 < < 117c115 < --- > objects\generic\woodenelevator\woodenelevatorlong.object 76a77 > "collisionKind" : "platform", objects\generic\woodenelevator\woodenelevatorshort.object 75a76 > "collisionKind" : "platform", objects\glitch\anvil\anvil.object 23d22 < "printable" : true, objects\glitch\glitchstoragelocker\glitchstoragelocker.object 34,35c34,35 < "openSounds" : [ "/sfx/objects/chest_small_open.ogg" ], < "closeSounds" : [ "/sfx/objects/chest_small_close.ogg" ], --- > "openSounds" : [ "/sfx/objects/gunchest_open.ogg" ], > "closeSounds" : [ "/sfx/objects/gunchest_close.ogg" ], objects\human\bunkerbigpanel\bunkerbigpanel.object 15,17c15,17 < "glitchDescription" : "Curious. The readouts suggest this area is inhabitable for humans.", < "humanDescription" : "A bunch of arcane readouts flicker on the monitor. I'm sure someone could understand them... but not me.", < "hylotlDescription" : "According to these monitors, the water in this area is fresh.", --- > "glitchDescription" : "Curious. The readings on this monitor indicate they involve the nearest star.", > "humanDescription" : "This middle screen here seems to be analysing the local star. Hint: It's very hot.", > "hylotlDescription" : "According to these monitors, the local star is not in danger of collapsing just yet.", objects\human\bunkerbookcase\bunkerbookcase.object 18,19c18,19 < "humanDescription" : "A bunch of familiar books. There's even a copy of War and Peace. Naturally, it's never been read.", < "hylotlDescription" : "Tomes rich with human history. This one chronicles the life of a man who dressed like a bat and fought crime.", --- > "humanDescription" : "There's a bunch of familiar books written by humans. I wonder how many people read these?", > "hylotlDescription" : "Tomes rich with human history. They aren't as well-written as Hylotl books, of course.", objects\human\bunkerlighth\bunkerlighth.object 46c46 < "soundEffect" : "/sfx/objects/fluorescent_light_loud.ogg", --- > "soundEffect" : "/sfx/objects/fluorescent_light_quiet.ogg", objects\human\bunkerlightv\bunkerlightv.object 46c46 < "soundEffect" : "/sfx/objects/fluorescent_light_loud.ogg", --- > "soundEffect" : "/sfx/objects/fluorescent_light_quiet.ogg", objects\human\bunkerpanel1\bunkerpanel1.object 5c5 < "description" : "This appears to be an analysis of the environment outside of the bunker.", --- > "description" : "This panel appears to monitor some obscure environmental data.", 9,14c9,14 < "apexDescription" : "According to this data, the environment outside is inhabitable.", < "avianDescription" : "This doesn't appear to be very scientific. The reading says the environment is *pretty good I guess*.", < "floranDescription" : "Floran is not very entertained by thisss data.", < "glitchDescription" : "Dismissive. The environment is likely fine for Glitch, regardless of what this says.", < "humanDescription" : "The environment outside is safe for humans. This is good to know, since I've already been hanging out there.", < "hylotlDescription" : "Data on the surrounding environment. Much like Hylotl, humans have to be cautious about the areas which they visit.", --- > "apexDescription" : "This appears to be a panel displaying local sub-proton changes.", > "avianDescription" : "Data is being broadcast to this screen, which is displaying many measurements.", > "floranDescription" : "Floran hasss no time for tiny wordsss.", > "glitchDescription" : "Confused. This panel is displaying extraordinarily small environmental changes. For what purpose?", > "humanDescription" : "Someone was doing a lot of obscure data analysis with the aid of this screen.", > "hylotlDescription" : "Data on the surrounding environment. The changes measured are on a miniscule level.", objects\human\bunkerpanel2\bunkerpanel2.object 5c5 < "description" : "It's a patient file. He appears to be human, but... with two hearts?", --- > "description" : "It's a screen displaying an old medical scan.", 9,15c9,15 < "apexDescription" : "A human with two hearts. Who could have such biology?", < "avianDescription" : "A patient with two hearts. Perhaps humans are evolving.", < "floranDescription" : "This human has two heartsss... how greedy!", < "glitchDescription" : "Mortified. A human with two hearts? In Glitch culture, one with such a manufacturing error would be exterminated.", < "humanDescription" : "This person has two hearts! I wonder if I have two hearts. I have a lot of love to give.", < "hylotlDescription" : "Two hearts in one body. It's no wonder this person had to see a doctor.", < "novakidDescription" : "From the looks of it, this patient had two hearts. That just ain't right.", --- > "apexDescription" : "This screen appears to display a medical diagnostic.", > "avianDescription" : "A scan of what appears to be medical data.", > "floranDescription" : "Screen showsss flesh perssson. Floran wondersss if perssson is trapped inssside.", > "glitchDescription" : "Intrigued. This appears to be a full-body medical scan. I wonder what was wrong with them?", > "humanDescription" : "A digital medical scan! It's all blue, because blue is the default colour of scientific technology.", > "hylotlDescription" : "A medical scan - judging by the images, it wasn't of a Hylotl.", > "novakidDescription" : "I wonder what this information was bein' used for?", objects\human\humanstoragelocker\humanstoragelocker.object 34,35c34,35 < "openSounds" : [ "/sfx/objects/chest_small_open.ogg" ], < "closeSounds" : [ "/sfx/objects/chest_small_close.ogg" ], --- > "openSounds" : [ "/sfx/objects/gunchest_open.ogg" ], > "closeSounds" : [ "/sfx/objects/gunchest_close.ogg" ], objects\human\marinesign\marinesign.object 8c8 < "description" : "What does USCM stand for, again? Oh - United Systems Colonial Marines.", --- > "description" : "What does USCM stand for, again?", 12,13c12,13 < "apexDescription" : "A sign promoting the USCM, the human military.", < "avianDescription" : "This area clearly had a human military presence.", --- > "apexDescription" : "A sign promoting the USCM, a disbanded human military faction.", > "avianDescription" : "This area clearly had a human military presence once.", 16c16 < "humanDescription" : "United! Systems! Colonial Marines! We're big! We're tough! And our guns are mean! Yeah... never singing that again.", --- > "humanDescription" : "The USCM, huh? These guys didn't like the Terrene Protectorate so much.", 17a18 > "novakidDescription" : "I ain't heard o' these guys, but judgin' by the state of this sign, they've been gone a while.", objects\human\prisonstonesign\prisonstonesign.object 11c11 < "apexDescription" : "A bold display of USCM authority.", --- > "apexDescription" : "A bold display of USCM authority - not that it means much anymore.", objects\human\vendingmachine\vendingmachine.object 3c3 < "colonyTags" : ["human","humanbunker","commerce"], --- > "colonyTags" : ["human","humanbunker","mechanical","commerce"], 9c9 < "price" : 105, --- > "price" : 150, 62a63,65 > "soundEffect" : "/sfx/objects/fluorescent_light_loud.ogg", > "soundEffectRangeMultiplier" : 0.5, > 68,70d70 < "soundEffect" : "/sfx/objects/fluorescent_light_loud.ogg", < "soundEffectRangeMultiplier" : 0.5, < 93,94c93,94 < "preciseStandPositionLeft" : [-0.5, 0.0], < "preciseStandPositionRight" : [2.0, 0.0], --- > "preciseStandPositionLeft" : [-0.5, 1.0], > "preciseStandPositionRight" : [2.0, 1.0], objects\hylotl\airlockdoor\airlockdoor.object 9c9 < "shortdescription" : "Airlock Door", --- > "shortdescription" : "Pressurised Airlock Door", objects\hylotl\airlockhatch\airlockhatch.object 9c9 < "shortdescription" : "Airlock Hatch", --- > "shortdescription" : "Pressurised Airlock Hatch", objects\hylotl\hylotlstoragelocker\hylotlstoragelocker.object 34,35c34,35 < "openSounds" : [ "/sfx/objects/chest_small_open.ogg" ], < "closeSounds" : [ "/sfx/objects/chest_small_close.ogg" ], --- > "openSounds" : [ "/sfx/objects/gunchest_open.ogg" ], > "closeSounds" : [ "/sfx/objects/gunchest_close.ogg" ], objects\hylotl\numisign\numisign.object 5c5,6 < "category" : "decorative", --- > "category" : "light", > "lightColor" : [180, 180, 180], 7d7 < "lightColor" : [200, 225, 205], 21d20 < 25c24 < "image" : "numisign.png:", --- > "image" : "numisign.png:.", 27,28c26 < "frames" : 1, < "animationCycle" : 0.5, --- > "direction" : "right", 32d29 < 34c31,48 < ] --- > ], > > "soundEffect" : "/sfx/objects/fluorescent_light_quiet.ogg", > "soundEffectRangeMultiplier" : 0.5, > > "animation" : "/objects/wired/light/lighttogglebgfullbright.animation", > "animationParts" : { > "bg" : "numisign.png", > "fg" : "numisignlit.png" > }, > "animationPosition" : [-16, -16], > > "scripts" : [ "/objects/wired/light/light.lua" ], > "scriptDelta" : 60, > > "interactive" : false, > > "inputNodes" : [ [0, 0] ] objects\hylotl\underwaterlightsmall\underwaterlightsmall.object 5c5 < "category" : "decorative", --- > "category" : "light", 33c33 < --- > 42c42 < --- > objects\mission\bossdoor\bossdoor.object 47a48 > "collisionKind" : "slippery", 49d49 < "platform" : false, objects\mission\lunarbaseconsole\lunarbaseconsole.object 3c3 < "colonyTags" : ["human","lunarbase","wired"], --- > "colonyTags" : ["human","lunarbase","electronic","wired"], objects\mission\miningchest\miningchest.object 3c3 < "colonyTags" : ["human","lunarbase","mechanical","storage"], --- > "colonyTags" : ["human","lunarbase","mechanical","storage","mining"], objects\mission\miningcrusher\miningcrusher.object 3c3 < "colonyTags" : ["human","lunarbase","mechanical"], --- > "colonyTags" : ["human","lunarbase","mechanical","mining"], objects\mission\miningdoor\miningdoor.object 4d3 < "printable" : false, objects\mission\miningfence\miningfence.object 3c3 < "colonyTags" : ["human","lunarbase"], --- > "colonyTags" : ["human","lunarbase","mining"], objects\mission\mininghazardsign\mininghazardsign.object 3c3 < "colonyTags" : ["human","lunarbase"], --- > "colonyTags" : ["human","lunarbase","mining"], objects\mission\miningpowersign\miningpowersign.object 4d3 < "printable" : false, objects\mission\miningskip\miningskip.object 32c32 < "anchors" : [ "bottom" ] --- > "fgAnchors" : [ [-2, -1], [-1, -1], [0, -1], [1, -1] ] 44c44 < "anchors" : [ "bottom" ] --- > "fgAnchors" : [ [-2, -1], [-1, -1], [0, -1], [1, -1] ] objects\mission\miningverticaldoor\miningverticaldoor.object 4d3 < "printable" : false, objects\novakid\frontierwindmill\frontierwindmill.object 4d3 < "printable" : true, objects\novakid\novakidstoragelocker\novakidstoragelocker.object 34,35c34,35 < "openSounds" : [ "/sfx/objects/chest_small_open.ogg" ], < "closeSounds" : [ "/sfx/objects/chest_small_close.ogg" ], --- > "openSounds" : [ "/sfx/objects/gunchest_open.ogg" ], > "closeSounds" : [ "/sfx/objects/gunchest_close.ogg" ], objects\outpost\bathroomhanddryer\bathroomhanddryer.object 9d8 < "printable" : true, objects\outpost\bathroomsink\bathroomsink.object 8d7 < "printable" : true, objects\outpost\bathroomstall\bathroomstall.object 9d8 < "printable" : true, objects\outpost\bathroomtrash\bathroomtrash.object 11d10 < "printable" : true, objects\outpost\bathroomurinal\bathroomurinal.object 9d8 < "printable" : true, objects\outpost\bench\bench.object 9d8 < "printable" : true, objects\outpost\coffeemachine\coffeemachine.object 10d9 < "printable" : true, objects\outpost\filingcabinet\filingcabinet.object 11d10 < "printable" : true, objects\outpost\fireextinguisher\fireextinguisher.object 9d8 < "printable" : true, objects\outpost\outpostairlock\outpostairlock.object 8,10c8,9 < "description" : "This door is made of some sort of bulletproof material.", < "shortdescription" : "Small Airlock", < "printable" : true, --- > "description" : "This automated door is made of some sort of bulletproof material.", > "shortdescription" : "Small Airlock Door", 43a43,44 > > "sensorConfig" : {}, objects\outpost\outpostairlocklarge\outpostairlocklarge.object 8,10c8,9 < "description" : "This door is made of some sort of bulletproof material.", < "shortdescription" : "Large Airlock", < "printable" : true, --- > "description" : "This automated door is made of some sort of bulletproof material.", > "shortdescription" : "Large Airlock Door", 44a44,45 > "sensorConfig" : {}, > 46c47 < --- > 59c60 < --- > objects\outpost\outpostbarstool\outpostbarstool.object 9d8 < "printable" : true, objects\outpost\outpostbed\outpostbed.object 10d9 < "printable" : true, objects\outpost\outpostbutton\outpostbutton.object 8d7 < "printable" : true, objects\outpost\outpostcabinet\outpostcabinet.object 10d9 < "printable" : true, objects\outpost\outpostcargocrate\outpostcargocrate.object 12d11 < "printable" : true, objects\outpost\outpostcargocrateshort\outpostcargocrateshort.object 12d11 < "printable" : true, objects\outpost\outpostceilinglight\outpostceilinglight.object 11d10 < "printable" : true, objects\outpost\outpostchair\outpostchair.object 9d8 < "printable" : true, objects\outpost\outpostconsole\outpostconsole.object 9d8 < "printable" : true, objects\outpost\outpostcrane\outpostcrane.object 8d7 < "printable" : true, objects\outpost\outpostdesk\outpostdesk.object 10d9 < "printable" : true, objects\outpost\outpostfridge\outpostfridge.object 10d9 < "printable" : true, objects\outpost\outpostgenerator\outpostgenerator.object 12d11 < "printable" : true, objects\outpost\outpostkeypad\outpostkeypad.object 8d7 < "printable" : true, 45a45,50 > "animationCustom" : { > "sounds" : { > "on" : [ "/sfx/objects/outpostbutton.ogg" ], > "off" : [ "/sfx/objects/outpostbutton.ogg" ] > } > }, objects\outpost\outpostlamp\outpostlamp.object 7d6 < "printable" : true, objects\outpost\outpostlight\outpostlight.object 8d7 < "printable" : true, objects\outpost\outpostlocker\outpostlocker.object 10d9 < "printable" : true, objects\outpost\outpostmicrowave\outpostmicrowave.object 10d9 < "printable" : true, objects\outpost\outpostmonitor\outpostmonitor.object 8d7 < "printable" : true, objects\outpost\outpostpc\outpostpc.object 9d8 < "printable" : true, objects\outpost\outpostpublicchair\outpostpublicchair.object 9d8 < "printable" : true, objects\outpost\outpostradardish\outpostradardish.object 11d10 < "printable" : true, 48,49c47 < ], < "scriptDelta" : 0 --- > ] objects\outpost\outpostsecurityconsole\outpostsecurityconsole.object 8,9c8 < "category" : "decorative", < "printable" : true, --- > "category" : "wire", 28c27 < --- > 40c39 < --- > objects\outpost\outpostservicepanel\outpostservicepanel.object 8d7 < "printable" : true, objects\outpost\outpostshippingcontainer\outpostshippingcontainer.object 12d11 < "printable" : true, objects\outpost\outpostslidingdoor\outpostslidingdoor.object 8d7 < "printable" : true, objects\outpost\outpostsmallmonitor\outpostsmallmonitor.object 8d7 < "printable" : true, objects\outpost\outpoststandingdesk\outpoststandingdesk.object 9d8 < "printable" : true, objects\outpost\outposttable\outposttable.object 9d8 < "printable" : true, objects\outpost\outposttank\outposttank.object 3c3 < "colonyTags" : ["outpost","mechanical","storage"], --- > "colonyTags" : ["outpost","mechanical"], 9d8 < "printable" : true, 31,32d29 < "frames" : 1, < "animationCycle" : 1.0, 44,45d40 < "frames" : 1, < "animationCycle" : 1.0, objects\outpost\outpostterminal\outpostterminal.object 9d8 < "printable" : true, objects\outpost\penguinweaponshop\penguinweaponshop.object 67,73d66 < "offeredQuests" : [ < "penguin2" < ], < "turnInQuests" : [ < "penguin2" < ], < objects\outpost\plasticplant\plasticplant.object 10d9 < "printable" : true, objects\outpost\roofvent\roofvent.object 9d8 < "printable" : true, objects\outpost\signstore\signstore.object 19c19 < --- > 28c28 < "spaceScan" : 0.1, --- > "spaceScan" : 0.1, 38c38 < "spaceScan" : 0.1, --- > "spaceScan" : 0.1, 46c46 < "interactAction" : "ScriptConsole", --- > "interactAction" : "ScriptPane", objects\outpost\signstore\signstoreobject.lua 26c26 < if item ~= nil and item.name == "customsign" then --- > if item ~= nil and (item.name == "customsign" or item.name == "wiredcustomsign") then 42c42 < if type(input) ~= "table" then --- > if type(input) ~= "table" then 44c44 < return newinput --- > return newinput 47c47 < for i,j in pairs(input) do --- > for i,j in pairs(input) do objects\outpost\watercooler\watercooler.object 9d8 < "printable" : true, objects\rails\railbumper\railbumper.object 2a3 > "colonyTags" : ["rails"], objects\rails\railsensor\railsensor.object 3c3 < "colonyTags" : ["wired"], --- > "colonyTags" : ["rails","wired"], 48c48 < "scriptDelta" : 10, --- > "scriptDelta" : 5, objects\rails\railstop\railstop.object 2a3 > "colonyTags" : ["rails"], objects\rails\railswitch\railswitch.object 3c3 < "colonyTags" : ["wired"], --- > "colonyTags" : ["rails","wired"], objects\ship\apexcaptainschair\apexcaptainschair.object 49c49,50 < "interactAction" : "openCockpitInterface", --- > "interactAction" : "ScriptPane", > "interactData" : "/interface/cockpit/cockpit.config", 51,53c52 < "sitFlipDirection" : false, < "soundEffect" : "/sfx/objects/shipengine.ogg", < "soundEffectRadius" : 1000 --- > "sitFlipDirection" : false objects\ship\apexshipdoor\apexshiphatch.object 57,58c57,58 < "inputNodes" : [ [-1, 4] ], < "outputNodes" : [ [0, 0] ] --- > "inputNodes" : [ [-2, 0] ], > "outputNodes" : [ [2, -1] ] objects\ship\apexshiplocker\apexshiplocker.object 37,38c37,38 < "openSounds" : [ "/sfx/objects/chest_small_open.ogg" ], < "closeSounds" : [ "/sfx/objects/chest_small_close.ogg" ], --- > "openSounds" : [ "/sfx/objects/gunchest_open.ogg" ], > "closeSounds" : [ "/sfx/objects/gunchest_close.ogg" ], objects\ship\aviancaptainschair\aviancaptainschair.object 49c49,50 < "interactAction" : "openCockpitInterface", --- > "interactAction" : "ScriptPane", > "interactData" : "/interface/cockpit/cockpit.config", 51,53c52 < "sitFlipDirection" : false, < "soundEffect" : "/sfx/objects/shipengine.ogg", < "soundEffectRadius" : 1000 --- > "sitFlipDirection" : false objects\ship\avianshipdoor\avianshiphatch.object 56,57c56,57 < "inputNodes" : [ [-1, 4] ], < "outputNodes" : [ [0, 0] ] --- > "inputNodes" : [ [-2, 0] ], > "outputNodes" : [ [2, -1] ] objects\ship\avianshiplocker\avianshiplocker.object 35,36c35,36 < "openSounds" : [ "/sfx/objects/chest_small_open.ogg" ], < "closeSounds" : [ "/sfx/objects/chest_small_close.ogg" ], --- > "openSounds" : [ "/sfx/objects/gunchest_open.ogg" ], > "closeSounds" : [ "/sfx/objects/gunchest_close.ogg" ], objects\ship\avianteleporter\avianteleporter.object 18c18 < "category" : "light", --- > "category" : "teleporter", 53a54,56 > > "soundEffect" : "/sfx/objects/shipengine.ogg", > "soundEffectRangeMultiplier" : 1.5, objects\ship\avianteleporterTier0\avianteleporterTier0.object 51,52c51,54 < "sounds" : [ "/sfx/interface/clickon_error.ogg" ] < --- > "sounds" : [ "/sfx/interface/clickon_error.ogg" ], > > "soundEffect" : "/sfx/objects/shipengine.ogg", > "soundEffectRangeMultiplier" : 1.5 objects\ship\boosters\smallboosterflame\smallboosterflame.object 42a43,45 > "soundEffect" : "/sfx/objects/smallboosterflame.ogg", > "soundEffectRangeMultiplier" : 0.5, > objects\ship\boosters\smallboosterflame\smallboosterflameglitch.object 42a43,45 > "soundEffect" : "/sfx/objects/smallboosterflame.ogg", > "soundEffectRangeMultiplier" : 0.5, > objects\ship\boosters\smallboosterflame\smallboosterflamehuman2.object 42a43,45 > "soundEffect" : "/sfx/objects/smallboosterflame.ogg", > "soundEffectRangeMultiplier" : 0.5, > objects\ship\florancaptainschair\florancaptainschair.object 21c21 < --- > 49c49,50 < "interactAction" : "openCockpitInterface", --- > "interactAction" : "ScriptPane", > "interactData" : "/interface/cockpit/cockpit.config", 51,53c52 < "sitFlipDirection" : false, < "soundEffect" : "/sfx/objects/shipengine.ogg", < "soundEffectRadius" : 1000 --- > "sitFlipDirection" : false objects\ship\floranshipdoor\floranshiphatch.object 56,57c56,57 < "inputNodes" : [ [-1, 4] ], < "outputNodes" : [ [0, 0] ] --- > "inputNodes" : [ [-2, 0] ], > "outputNodes" : [ [2, -1] ] objects\ship\floranshiplocker\floranshiplocker.object 35,36c35,36 < "openSounds" : [ "/sfx/objects/chest_small_open.ogg" ], < "closeSounds" : [ "/sfx/objects/chest_small_close.ogg" ], --- > "openSounds" : [ "/sfx/objects/gunchest_open.ogg" ], > "closeSounds" : [ "/sfx/objects/gunchest_close.ogg" ], objects\ship\floranteleporter\floranteleporter.object 18c18 < "category" : "light", --- > "category" : "teleporter", 53a54,56 > > "soundEffect" : "/sfx/objects/shipengine.ogg", > "soundEffectRangeMultiplier" : 1.5, objects\ship\floranteleporterTier0\floranteleporterTier0.object 51c51,54 < "sounds" : [ "/sfx/interface/clickon_error.ogg" ] --- > "sounds" : [ "/sfx/interface/clickon_error.ogg" ], > > "soundEffect" : "/sfx/objects/shipengine.ogg", > "soundEffectRangeMultiplier" : 1.5 objects\ship\glitchcaptainschair\glitchcaptainschair.object 49c49,50 < "interactAction" : "openCockpitInterface", --- > "interactAction" : "ScriptPane", > "interactData" : "/interface/cockpit/cockpit.config", 51,53c52 < "sitFlipDirection" : false, < "soundEffect" : "/sfx/objects/shipengine.ogg", < "soundEffectRadius" : 1000 --- > "sitFlipDirection" : false objects\ship\glitchshipdoor\glitchshiphatch.object 56,57c56,57 < "inputNodes" : [ [-1, 4] ], < "outputNodes" : [ [0, 0] ] --- > "inputNodes" : [ [-2, 0] ], > "outputNodes" : [ [2, -1] ] objects\ship\glitchshiplocker\glitchshiplocker.object 35,36c35,36 < "openSounds" : [ "/sfx/objects/chest_small_open.ogg" ], < "closeSounds" : [ "/sfx/objects/chest_small_close.ogg" ], --- > "openSounds" : [ "/sfx/objects/gunchest_open.ogg" ], > "closeSounds" : [ "/sfx/objects/gunchest_close.ogg" ], objects\ship\glitchteleporter\glitchteleporter.object 18c18 < "category" : "light", --- > "category" : "teleporter", 53a54,56 > > "soundEffect" : "/sfx/objects/shipengine.ogg", > "soundEffectRangeMultiplier" : 1.5, objects\ship\glitchteleporterTier0\glitchteleporterTier0.object 51c51,54 < "sounds" : [ "/sfx/interface/clickon_error.ogg" ] --- > "sounds" : [ "/sfx/interface/clickon_error.ogg" ], > > "soundEffect" : "/sfx/objects/shipengine.ogg", > "soundEffectRangeMultiplier" : 1.5 objects\ship\humancaptainschair\humancaptainschair.object 48d47 < "interactAction" : "openCockpitInterface", 50,52c49,52 < "sitFlipDirection" : false, < "soundEffect" : "/sfx/objects/shipengine.ogg", < "soundEffectRadius" : 1000 --- > "interactAction" : "ScriptPane", > "interactData" : "/interface/cockpit/cockpit.config", > > "sitFlipDirection" : false objects\ship\humanshipdoor\humanshiphatch.object 56,57c56,57 < "inputNodes" : [ [-1, 4] ], < "outputNodes" : [ [0, 0] ] --- > "inputNodes" : [ [-2, 0] ], > "outputNodes" : [ [2, -1] ] objects\ship\humanshiplocker\humanshiplocker.object 35,36c35,36 < "openSounds" : [ "/sfx/objects/chest_small_open.ogg" ], < "closeSounds" : [ "/sfx/objects/chest_small_close.ogg" ], --- > "openSounds" : [ "/sfx/objects/gunchest_open.ogg" ], > "closeSounds" : [ "/sfx/objects/gunchest_close.ogg" ], objects\ship\humanteleporter\humanteleporter.object 18c18 < "category" : "light", --- > "category" : "teleporter", 53a54,56 > > "soundEffect" : "/sfx/objects/shipengine.ogg", > "soundEffectRangeMultiplier" : 1.5, objects\ship\humanteleporterTier0\humanteleporterTier0.object 51c51,54 < "sounds" : [ "/sfx/interface/clickon_error.ogg" ] --- > "sounds" : [ "/sfx/interface/clickon_error.ogg" ], > > "soundEffect" : "/sfx/objects/shipengine.ogg", > "soundEffectRangeMultiplier" : 1.5 objects\ship\hylotlcaptainschair\hylotlcaptainschair.object 49c49,50 < "interactAction" : "openCockpitInterface", --- > "interactAction" : "ScriptPane", > "interactData" : "/interface/cockpit/cockpit.config", 51,53c52 < "sitFlipDirection" : false, < "soundEffect" : "/sfx/objects/shipengine.ogg", < "soundEffectRadius" : 1000 --- > "sitFlipDirection" : false objects\ship\hylotlshipdoor\hylotlshiphatch.object 56,57c56,57 < "inputNodes" : [ [-1, 4] ], < "outputNodes" : [ [0, 0] ] --- > "inputNodes" : [ [-2, 0] ], > "outputNodes" : [ [2, -1] ] objects\ship\hylotlshiplocker\hylotlshiplocker.object 35,36c35,36 < "openSounds" : [ "/sfx/objects/chest_small_open.ogg" ], < "closeSounds" : [ "/sfx/objects/chest_small_close.ogg" ], --- > "openSounds" : [ "/sfx/objects/gunchest_open.ogg" ], > "closeSounds" : [ "/sfx/objects/gunchest_close.ogg" ], objects\ship\hylotlteleporter\hylotlteleporter.object 18c18 < "category" : "light", --- > "category" : "teleporter", 53a54,56 > > "soundEffect" : "/sfx/objects/shipengine.ogg", > "soundEffectRangeMultiplier" : 1.5, objects\ship\hylotlteleporterTier0\hylotlteleporterTier0.object 12,16c12,16 < "apexDescription" : "The ship's teleporter. It has no power.", < "avianDescription" : "The teleporter! If only if it was powered up.", < "floranDescription" : "Teleporter. This one dead.", < "glitchDescription" : "Disappointed. A teleporter without power.", < "humanDescription" : "A teleporter! Too bad it isn't powered up.", --- > "apexDescription" : "The ship's teleporter. I need to power it up.", > "avianDescription" : "The teleporter! If only this one was powered up.", > "floranDescription" : "Ship teleporter. This one dead.", > "glitchDescription" : "Disappointed. A teleporter without power. I need to power it up.", > "humanDescription" : "The teleporter! Too bad it isn't powered up.", 18c18 < "novakidDescription" : "This ol' teleporter doesn't seem to be workin'.", --- > "novakidDescription" : "Ship's teleporter. I need to power her up!", 51c51,54 < "sounds" : [ "/sfx/interface/clickon_error.ogg" ] --- > "sounds" : [ "/sfx/interface/clickon_error.ogg" ], > > "soundEffect" : "/sfx/objects/shipengine.ogg", > "soundEffectRangeMultiplier" : 1.5 objects\ship\novakidcaptainschair\novakidcaptainschair.object 49c49,50 < "interactAction" : "openCockpitInterface", --- > "interactAction" : "ScriptPane", > "interactData" : "/interface/cockpit/cockpit.config", 51,53c52 < "sitFlipDirection" : false, < "soundEffect" : "/sfx/objects/shipengine.ogg", < "soundEffectRadius" : 1000 --- > "sitFlipDirection" : false objects\ship\novakidshipdoor\novakidshiphatch.object 56,57c56,57 < "inputNodes" : [ [-1, 4] ], < "outputNodes" : [ [0, 0] ] --- > "inputNodes" : [ [-2, 0] ], > "outputNodes" : [ [2, -1] ] objects\ship\novakidshiplocker\novakidshiplocker.object 35,36c35,36 < "openSounds" : [ "/sfx/objects/chest_small_open.ogg" ], < "closeSounds" : [ "/sfx/objects/chest_small_close.ogg" ], --- > "openSounds" : [ "/sfx/objects/gunchest_open.ogg" ], > "closeSounds" : [ "/sfx/objects/gunchest_close.ogg" ], objects\ship\novakidteleporter\novakidteleporter.object 18c18 < "category" : "light", --- > "category" : "teleporter", 53a54,56 > > "soundEffect" : "/sfx/objects/shipengine.ogg", > "soundEffectRangeMultiplier" : 1.5, objects\ship\novakidteleporterTier0\novakidteleporterTier0.object 51c51,54 < "sounds" : [ "/sfx/interface/clickon_error.ogg" ] --- > "sounds" : [ "/sfx/interface/clickon_error.ogg" ], > > "soundEffect" : "/sfx/objects/shipengine.ogg", > "soundEffectRangeMultiplier" : 1.5 objects\ship\teleporter\teleporter.object 18c18 < "category" : "light", --- > "category" : "teleporter", 53a54,56 > > "soundEffect" : "/sfx/objects/shipengine.ogg", > "soundEffectRangeMultiplier" : 1.5, objects\ship\teleporterTier0\teleporterTier0.object 52c52,55 < "sounds" : [ "/sfx/interface/clickon_error.ogg" ] --- > "sounds" : [ "/sfx/interface/clickon_error.ogg" ], > > "soundEffect" : "/sfx/objects/shipengine.ogg", > "soundEffectRangeMultiplier" : 1.5 objects\spawner\colonydeed\colonydeed.lua 440c440 < local level = tenant.level or world.getProperty("ship.level") or world.threatLevel() --- > local level = tenant.level or getRentLevel() objects\teleporter\returnoutpostteleporter\returnoutpostteleporter.object 39,42c39 < ], < < "scripts" : [ "/objects/teleporter/exitteleporter.lua" ], < "scriptDelta" : 0 --- > ] objects\themed\island\hulagirl\hulagirl.object 3a4 > "printable" : false, 4a6 > "category" : "decorative", objects\themed\retroscifi\retroscifibed\retroscifibed.object 26c26 < --- > 44c44 < --- > 46c46 < --- > 51,52c51 < "direction" : "left", < "collision" : "platform" --- > "direction" : "left" 59c58 < --- > 61c60 < --- > 66,67c65 < "direction" : "right", < "collision" : "platform" --- > "direction" : "right" 69d66 < objects\themed\wave\waveswitch\waveswitch.object 9,11c9,15 < "flickerDistance" : 0.2, < "flickerStrength" : 0.05, < "flickerTiming" : 4, --- > > "flickerPeriod" : 0.3, > "flickerMinIntensity" : 0.95, > "flickerMaxIntensity" : 1, > "flickerPeriodVariance" : 0.1, > "flickerIntensityVariance" : 0.0, > objects\wired\door\door.lua 3a4,38 > self.sensorConfig = config.getParameter("sensorConfig") > if self.sensorConfig then > self.sensorConfig.detectEntityTypes = self.sensorConfig.detectEntityTypes or {"Player", "Npc"} > self.sensorConfig.detectBoundMode = self.sensorConfig.detectBoundMode or "CollisionArea" > self.sensorConfig.detectDuration = self.sensorConfig.detectDuration or 3 > self.sensorConfig.detectTimer = 0 > local detectArea = self.sensorConfig.detectArea > local pos = object.position() > if not detectArea or detectArea == "horizontal" then > local bb = object.boundBox() > self.sensorConfig.detectArea = { > {bb[1] - 1, bb[2] + 0}, > {bb[3] + 1, bb[4] - 0} > } > elseif detectArea == "vertical" then > local bb = object.boundBox() > self.sensorConfig.detectArea = { > {bb[1] + 1, bb[2] - 4}, > {bb[3] - 1, bb[4] + 4} > } > elseif type(detectArea[2]) == "number" then > --center and radius > self.sensorConfig.detectArea = { > {pos[1] + detectArea[1][1], pos[2] + detectArea[1][2]}, > detectArea[2] > } > elseif type(detectArea[2]) == "table" and #detectArea[2] == 2 then > --rect corner1 and corner2 > self.sensorConfig.detectArea = { > {pos[1] + detectArea[1][1], pos[2] + detectArea[1][2]}, > {pos[1] + detectArea[2][1], pos[2] + detectArea[2][2]} > } > end > end > 22a58 > message.setHandler("closeDoor", function() closeDoor() end) 25a62,85 > function update(dt) > if self.sensorConfig then > self.sensorConfig.detectTimer = math.max(0, self.sensorConfig.detectTimer - dt) > > if not storage.locked and not object.isInputNodeConnected(0) then > local entityIds = world.entityQuery(self.sensorConfig.detectArea[1], self.sensorConfig.detectArea[2], { > withoutEntityId = entity.id(), > includedTypes = self.sensorConfig.detectEntityTypes, > boundMode = self.sensorConfig.detectBoundMode > }) > > if #entityIds > 0 then > self.sensorConfig.detectTimer = self.sensorConfig.detectDuration > end > > if self.sensorConfig.detectTimer > 0 then > openDoor() > else > closeDoor() > end > end > end > end > 63c123 < object.setInteractive(config.getParameter("interactive", true) and not object.isInputNodeConnected(0) and not storage.locked) --- > object.setInteractive(config.getParameter("interactive", true) and not self.sensorConfig and not object.isInputNodeConnected(0) and not storage.locked) 95c155 < elseif object.isInputNodeConnected(0) or storage.locked then --- > elseif object.isInputNodeConnected(0) or storage.locked or self.sensorConfig then objects\wired\ironbeacon\decoyprincess.lua 5c5 < --- > 8c8 < --- > 14,15c14,15 < < return not world.rectTileCollision(bounds, {"Null", "Block", "Dynamic"}) --- > > return not world.rectTileCollision(bounds, {"Null", "Block", "Dynamic", "Slippery"}) objects\wired\ironbeacon\ironbeacon.lua 5c5 < --- > 8c8 < --- > 14,15c14,15 < < return not world.rectTileCollision(bounds, {"Null", "Block", "Dynamic"}) --- > > return not world.rectTileCollision(bounds, {"Null", "Block", "Dynamic", "Slippery"}) objects\wired\ironbeacon\jellyboss.lua 5c5 < --- > 8c8 < --- > 14,15c14,15 < < return not world.rectTileCollision(bounds, {"Null", "Block", "Dynamic"}) --- > > return not world.rectTileCollision(bounds, {"Null", "Block", "Dynamic", "Slippery"}) objects\wired\ironbeacon\robot.lua 5c5 < --- > 8c8 < --- > 14,15c14,15 < < return not world.rectTileCollision(bounds, {"Null", "Block", "Dynamic"}) --- > > return not world.rectTileCollision(bounds, {"Null", "Block", "Dynamic", "Slippery"}) objects\wired\movingplatform\movingelevatorlong.objectdisabled 98a99 > "collisionKind" : "platform", objects\wired\movingplatform\movingelevatorshort.objectdisabled 98a99 > "collisionKind" : "platform", objects\wired\switch\switch.lua 32c32 < if not (config.getParameter("alwaysLit")) then object.setLightColor({0, 0, 0, 0}) end --- > if not (config.getParameter("alwaysLit")) then object.setLightColor(config.getParameter("lightColorOff", {0, 0, 0})) end objects\wreck\wrecktable\wrecktable.object 29,30c29,30 < "anchors" : [ "bottom" ] < --- > "anchors" : [ "bottom" ], > "collision" : "platform" objects\wreck\wreckvendingmachine\wreckvendingmachine.object 3c3 < "colonyTags" : ["wreck","mechanical"], --- > "colonyTags" : ["wreck","mechanical","commerce"], 8c8 < "category" : "decorative", --- > "category" : "other", 53,54c53,54 < "preciseStandPositionLeft" : [-0.5, 0.0], < "preciseStandPositionRight" : [2.0, 0.0], --- > "preciseStandPositionLeft" : [-0.5, 1.0], > "preciseStandPositionRight" : [2.0, 1.0], particles\hoverbikedownthrust.particle 16a17 > "collidesLiquid" : false, particles\hoverbikethrust.particle 16a17 > "collidesLiquid" : false, particles\rocketbarrelpuff.particle 14c14 < "layer" : "back", --- > "layer" : "front", particles\tinyrocketsmoke.particle 13c13 < "layer" : "back", --- > "layer" : "middle", plants\trees\forest\foliage\bubbles\bubbles.modularfoliage 5d4 < 10c9 < --- > 98c97 < --- > plants\trees\seatrees\foliage\bubbles\bubbles.modularfoliage 2c2 < "name" : "bubbles", --- > "name" : "seabubbles", 9c9 < --- > 97c97 < --- > player\playereffects.animation 47a48,63 > "deployIn" : { > "frames" : 11, > "cycle" : 0.4, > "mode" : "transition", > "transition" : "none", > "properties" : { > "immediateSound" : "/sfx/tools/despatch_in.ogg" > } > }, > "deployOut" : { > "frames" : 26, > "cycle" : 2.0, > "properties" : { > "immediateSound" : "/sfx/tools/despatch_out.ogg" > } > }, 110a127,138 > "deployIn" : { > "properties" : { > "image" : "/animations/deployment/deploypodin.png:", > "offset" : [0, 6.5] > } > }, > "deployOut" : { > "properties" : { > "image" : "/animations/deployment/deploypod.png:", > "offset" : [0, 1] > } > }, 195a224,331 > } > } > ] > }, > > "defaultBurst" : { > "particles" : [ > ] > }, > "beamBurst" : { > "particles" : [ > ] > }, > "deployBurst" : { > "offsetRegion" : [0.0, -2.25, 0.0, -2.25], > "particles" : [ > { > "count" : 20, > "offset" : [0, 1.5], > "particle" : { > "type" : "animated", > "animation" : "/animations/dust2/dust2.animation", > "position" : [0, 0], > "initialVelocity" : [0, -20], > "finalVelocity" : [0, 0], > "approach" : [1, 1], > "destructionAction" : "fade", > "destructionTime" : 2.0, > "fade" : 1, > "size" : 1, > "layer" : "front", > "timeToLive" : 2.0, > "variance" : { > "initialVelocity" : [10.0, 10.0], > "position" : [3.0, 3.0] > } > } > }, > { > "particle" : { > "type" : "textured", > "image" : "/animations/deployment/deployshardleft.png", > "position" : [-1.75, 1.375], > "offsetRegion" : [0, 0, 0, 0], > "initialVelocity" : [-5, -20], > "angularVelocity" : 25, > "approach" : [0, 0], > "timeToLive" : 3.0, > "destructionTime" : 1.0, > "destructionAction" : "fade", > "layer" : "front", > "variance" : { > "angularVelocity" : 0 > } > } > }, > { > "particle" : { > "type" : "textured", > "image" : "/animations/deployment/deployshardright.png", > "position" : [1.75, 1.375], > "offsetRegion" : [0, 0, 0, 0], > "initialVelocity" : [5, -20], > "angularVelocity" : -25, > "approach" : [0, 0], > "timeToLive" : 3.0, > "destructionTime" : 1.0, > "destructionAction" : "fade", > "layer" : "front", > "variance" : { > "angularVelocity" : 0 > } > } > }, > { > "particle" : { > "type" : "textured", > "image" : "/animations/deployment/deployshardbottom.png", > "position" : [0.0, 0.0], > "offsetRegion" : [0, 0, 0, 0], > "initialVelocity" : [0, -25], > "angularVelocity" : 0, > "approach" : [0, 0], > "timeToLive" : 3.0, > "destructionTime" : 1.0, > "destructionAction" : "fade", > "layer" : "front", > "variance" : { > "angularVelocity" : 10 > } > } > }, > { > "particle" : { > "type" : "textured", > "image" : "/animations/deployment/deployshardtop.png", > "position" : [0.0, 4.375], > "offsetRegion" : [0, 0, 0, 0], > "initialVelocity" : [0, -15], > "angularVelocity" : 0, > "approach" : [0, 0], > "timeToLive" : 3.0, > "destructionTime" : 1.0, > "destructionAction" : "fade", > "layer" : "front", > "variance" : { > "angularVelocity" : 10 > } projectiles\killable.lua 2,4c2 < message.setHandler("kill", function() < projectile.die() < end) --- > message.setHandler("kill", projectile.die) projectiles\physics.config 1156a1157,1158 > "bounceFactor" : 0.2, > 1175a1178,1193 > "maximumCorrection" : 0.75 > }, > > "spacemine" : { > "mass" : 1.0, > "gravityMultiplier" : 0.6, > "bounceFactor" : 0.4, > "stopOnFirstBounce" : true, > "maxMovementPerStep" : 0.4, > > "collisionPoly" : [ [-0.25, -0.25], [0.25, -0.25], [0.25, 0.25], [-0.25, 0.25] ], > "ignorePlatformCollision" : true, > > "airFriction" : 1.0, > "liquidFriction" : 8.0, > "groundFriction" : 15.0, projectiles\activeitems\boomerang\boomerang.projectile 23c23 < "scripts" : [ "boomerangprojectile.lua" ] --- > "scripts" : [ "/scripts/projectiles/boomerangprojectile.lua" ] projectiles\activeitems\boomerang\boomerang_l6.projectile 23c23 < "scripts" : [ "boomerangprojectile.lua" ] --- > "scripts" : [ "/scripts/projectiles/boomerangprojectile.lua" ] projectiles\activeitems\boomerang\fireboomerang.projectile 23c23 < "scripts" : [ "boomerangprojectile.lua" ] --- > "scripts" : [ "/scripts/projectiles/boomerangprojectile.lua" ] projectiles\activeitems\boomerang\fireboomerang_l6.projectile 23c23 < "scripts" : [ "boomerangprojectile.lua" ] --- > "scripts" : [ "/scripts/projectiles/boomerangprojectile.lua" ] projectiles\activeitems\boomerang\iceboomerang.projectile 32c32 < "scripts" : [ "boomerangprojectile.lua" ] --- > "scripts" : [ "/scripts/projectiles/boomerangprojectile.lua" ] projectiles\activeitems\boomerang\iceboomerang_l6.projectile 32c32 < "scripts" : [ "boomerangprojectile.lua" ] --- > "scripts" : [ "/scripts/projectiles/boomerangprojectile.lua" ] projectiles\activeitems\boomerang\lunarang.projectile 22c22 < "scripts" : [ "boomerangprojectile.lua", "lunarangprojectile.lua" ], --- > "scripts" : [ "/scripts/projectiles/boomerangprojectile.lua", "lunarangprojectile.lua" ], projectiles\activeitems\boomerang\lunarangprojectile.lua 38c38 < function boomerangExtra:boomerangProjectileIds() --- > function boomerangExtra:projectileIds() projectiles\activeitems\boomerang\lunarangshard.projectile 23c23 < "scripts" : [ "boomerangprojectile.lua" ], --- > "scripts" : [ "/scripts/projectiles/boomerangprojectile.lua" ], projectiles\activeitems\boomerang\lunarangshard_l6.projectile 23c23 < "scripts" : [ "boomerangprojectile.lua" ], --- > "scripts" : [ "/scripts/projectiles/boomerangprojectile.lua" ], projectiles\activeitems\boomerang\lunarang_l6.projectile 22c22 < "scripts" : [ "boomerangprojectile.lua", "lunarangprojectile.lua" ], --- > "scripts" : [ "/scripts/projectiles/boomerangprojectile.lua", "lunarangprojectile.lua" ], projectiles\activeitems\boomerang\wormerang.projectile 29c29 < "scripts" : [ "boomerangprojectile.lua", "wormerangprojectile.lua" ] --- > "scripts" : [ "/scripts/projectiles/boomerangprojectile.lua", "wormerangprojectile.lua" ] projectiles\activeitems\boomerang\wormerang_l6.projectile 29c29 < "scripts" : [ "boomerangprojectile.lua", "wormerangprojectile.lua" ] --- > "scripts" : [ "/scripts/projectiles/boomerangprojectile.lua", "wormerangprojectile.lua" ] projectiles\activeitems\chakram\chakramprojectile.lua 53c53 < function boomerangProjectileIds() --- > function projectileIds() projectiles\activeitems\chakram\hoverchakramprojectile.lua 59c59 < function boomerangProjectileIds() --- > function projectileIds() projectiles\activeitems\grapplehook\grapplehook.lua 4a5 > self.breakOnSlipperyCollision = config.getParameter("breakOnSlipperyCollision") 10a12,13 > elseif self.breakOnSlipperyCollision and mcontroller.isColliding() then > kill() projectiles\activeitems\grapplehook\grapplehook.projectile 21c21,23 < --- > > "breakOnSlipperyCollision" : true, > projectiles\activeitems\magnorb\magnorb.projectile 29c29 < "scripts" : [ "/projectiles/activeitems/boomerang/boomerangprojectile.lua" ] --- > "scripts" : [ "/scripts/projectiles/boomerangprojectile.lua" ] projectiles\activeitems\staff\forcecage\forcecage.projectile 26d25 < "platform" : false, 27a27 > "collisionKind" : "slippery", 31d30 < "platform" : false, 32a32 > "collisionKind" : "slippery", 36d35 < "platform" : false, 37a37 > "collisionKind" : "slippery", 41d40 < "platform" : false, 42a42 > "collisionKind" : "slippery", 57c57 < --- > projectiles\activeitems\staff\pullzone\pullzone.projectile 22a23,24 > > "boundBox" : [-7, -7, 7, 7], 28,29c30,31 < "innerRadius" : 6, < "baseTargetRadialVelocity" : -40, --- > "innerRadius" : 3, > "targetRadialVelocity" : -40, 43c45 < --- > projectiles\activeitems\staff\pushzone\pushzone.projectile 22a23,24 > > "boundBox" : [-7, -7, 7, 7], 28,29c30,31 < "innerRadius" : 6, < "baseTargetRadialVelocity" : 40, --- > "innerRadius" : 3, > "targetRadialVelocity" : 40, 43c45 < --- > projectiles\boss\kluexboss\stoneplatform\pillarplatform.projectile 54c54,55 < ] --- > ], > "collisionKind" : "platform" projectiles\explosions\gravityexplosion\hgravityexplosion.projectile 17a18 > "boundBox" : [-10, -10, 10, 10], 22,23c23,24 < "innerRadius" : 4, < "baseTargetRadialVelocity" : -50, --- > "innerRadius" : 0, > "targetRadialVelocity" : -50, projectiles\explosions\gravityexplosion\ngravityexplosion.projectile 17a18 > "boundBox" : [-10, -10, 10, 10], 22,23c23,24 < "innerRadius" : 4, < "baseTargetRadialVelocity" : 50, --- > "innerRadius" : 0, > "targetRadialVelocity" : 50, projectiles\explosions\regularexplosion2\fireexplosionknockback.config 96c96 < "color" : "blue" --- > "color" : "red" projectiles\guns\plasmabullets\plasmabullet\plasmabullet.projectile 7a8 > "fullbright" : true, projectiles\guns\tentaclefist\invisibletentaclefist.projectile 30c30 < "/projectiles/activeitems/boomerang/boomerangprojectile.lua", --- > "/scripts/projectiles/boomerangprojectile.lua", projectiles\guns\tentaclefist\invisibletentaclefistnosound.projectile 30c30 < "/projectiles/activeitems/boomerang/boomerangprojectile.lua", --- > "/scripts/projectiles/boomerangprojectile.lua", projectiles\guns\tentaclefist\tentaclefist.lua 18c18 < function boomerangExtra:boomerangProjectileIds() --- > function boomerangExtra:projectileIds() projectiles\guns\tentaclefist\tentaclefist.projectile 30c30 < "/projectiles/activeitems/boomerang/boomerangprojectile.lua", --- > "/scripts/projectiles/boomerangprojectile.lua", projectiles\throwable\firework3\firework3.projectile 70c70 < "emitters" : [ "defaultorange", "defaultwhite" ] --- > "emitters" : [ "defaultorange" ] projectiles\throwable\firework4\firework4.projectile 14c14 < "emitters" : [ "defaultorange", "defaultwhite" ] --- > "emitters" : [ "defaultorange" ] projectiles\throwable\fireworkgun2\fireworkgun2.projectile 8c8 < "lightColor" : [234, 153, 149], --- > "lightColor" : [234, 153, 49], 46c46 < "emitters" : [ "defaultwhite" ] --- > "emitters" : [ "defaultorange" ] projectiles\throwable\fireworkgun3\fireworkgun3.projectile 14c14 < "emitters" : [ "defaultorange", "defaultwhite" ] --- > "emitters" : [ "defaultorange" ] quests\generated\templates\recruit_guard.questtemplate 24c24 < "ephemeral" : false, --- > "ephemeral" : true, quests\outpost\penguin2.questtemplate 2a3 > "prerequisites" : [ "mechupgrade1" ], 4,6c5,7 < "text" : "Normally I'd be dealin' you some rare weapon upgrades, but my supplier has been too distracted with his ^orange;new experimental weapon^white;. If you could... Destroy it for me, then maybe he'd get back to shipping me my weapon upgrades! ^green;Speak to me when you're ready and I can send you to him^white;!", < "completionText" : "You destroyed my supplier's weapon? Fantastic! Biggy's Reputable Weaponry is now back in business - ^green;come here every day to see what's new^white;!", < "moneyRange" : [50, 50], --- > "text" : "A weapon distributor of mine needs a shipment from me, but I've been busy fixing up my new experimental ^orange;Shockhopper mech^white;. Naturally ^green;I'll need a budding warrior to test it against^white; - catch my drift? Speak to me when you're geared up and ready, and we can go to my ^orange;weapon testing site^white;.", > "completionText" : "Thanks for the intense testing session, friendo - it gave me a lot of useful data! I've also sent out a shipment to my weapon distributor - ^green;his stall should be open right here on the Outpost^white; already.", > "moneyRange" : [500, 500], 16,17c17,18 < "portrait" : [ {"image" : "/objects/outpost/penguinweaponshop/penguinshopportrait.png"} ], < "title" : "Biggy" --- > "portrait" : [ {"image" : "/quests/outpost/penguinscientistportrait.png"} ], > "title" : "Dr. Akaggy" 20,21c21,22 < "portrait" : [ {"image" : "/objects/outpost/penguinweaponshop/penguinshopportrait.png"} ], < "title" : "Biggy" --- > "portrait" : [ {"image" : "/quests/outpost/penguinscientistportrait.png"} ], > "title" : "Dr. Akaggy" 26c27 < "enterInstance" : "Talk to ^orange;Biggy^reset; to go to the ^orange;Testing Site^reset;", --- > "enterInstance" : "Talk to ^orange;Dr. Akaggy^reset; to go to the ^orange;Testing Site^reset;", 28c29 < "turnIn" : "Return to ^orange;Biggy^reset; at the ^orange;Outpost^reset;" --- > "turnIn" : "Return to ^orange;Dr. Akaggy^reset; at the ^orange;Outpost^reset;" 33c34 < "warpEntityUid" : "penguinweaponshop", --- > "warpEntityUid" : "outpostpenguinscientist", 44c45,47 < "turnInEntityUid" : "penguinweaponshop" --- > "turnInEntityUid" : "outpostpenguinscientist", > > "setUniverseFlags" : ["outpost_weaponshop"] quests\scripts\instance.lua 104c104,108 < player.warp(self.warpAction, "beam") --- > if type(self.warpAction) == "string" then > player.warp(self.warpAction, "beam") > elseif type(self.warpAction) == "table" then > player.warp(self.warpAction[1], self.warpAction[2], self.warpAction[3]) > end 173,174c177,178 < end < end \ No newline at end of file --- > end > end quests\scripts\main.lua 130a131 > quest.setCanTurnIn(false) quests\scripts\questutil.lua 19a20,24 > local completionPlayerMessages = config.getParameter("completionPlayerMessages", {}) > for _,message in ipairs(completionPlayerMessages) do > world.sendEntityMessage(player.id(), message.messageType, table.unpack(message.messageArgs)) > end > 48a54,74 > local giveBlueprints = config.getParameter("giveBlueprints") > if giveBlueprints then > for _,blueprint in ipairs(giveBlueprints) do > player.giveBlueprint(blueprint) > end > end > > local giveSpeciesBlueprints = config.getParameter("giveSpeciesBlueprints") > if giveSpeciesBlueprints then > local playerSpecies = player.species() > if giveSpeciesBlueprints[playerSpecies] then > for _,blueprint in ipairs(giveSpeciesBlueprints[playerSpecies]) do > player.giveBlueprint(blueprint) > end > elseif giveSpeciesBlueprints["default"] then > for _,blueprint in ipairs(giveSpeciesBlueprints["default"]) do > player.giveBlueprint(blueprint) > end > end > end > 88c114 < end \ No newline at end of file --- > end quests\scripts\conditions\gather.lua 10c10,15 < return player.hasItem({ name = self.itemName, count = self.count }) --- > if root.itemType(self.itemName) == "currency" then > local currency = root.itemConfig(self.itemName).config.currency > return player.currency(currency) >= self.count > else > return player.hasItem({ name = self.itemName, count = self.count }) > end 15c20,25 < player.consumeItem({ name = self.itemName, count = self.count }) --- > if root.itemType(self.itemName) == "currency" then > local currency = root.itemConfig(self.itemName).config.currency > player.consumeCurrency(currency, self.count) > else > player.consumeItem({ name = self.itemName, count = self.count }) > end 23c33,40 < objective = objective:gsub("", player.hasCountOfItem(self.itemName) or 0) --- > local count > if root.itemType(self.itemName) == "currency" then > local currency = root.itemConfig(self.itemName).config.currency > count = player.currency(currency) or 0 > else > count = player.hasCountOfItem(self.itemName) or 0 > end > objective = objective:gsub("", count) quests\scripts\story\gaterepair.lua 220c220 < player.addBookmark(config.getParameter("outpostBookmark")) --- > player.addTeleportBookmark(config.getParameter("outpostBookmark")) quests\story\gaterepair.questtemplate 48,50c48,49 < "type" : "teleport", < "name" : "Outpost - The Ark", < "planetName" : "", --- > "bookmarkName" : "Outpost - The Ark", > "targetName" : "", 52,53c51 < "targetWorld" : "instanceworld:outpost", < "spawnTarget" : "arkteleporter" --- > "target" : ["instanceworld:outpost", "arkteleporter"] 56c54 < } \ No newline at end of file --- > } rendering\opengl20.config 46a47 > attribute float vertexParam1; 49a51 > varying float fragmentLightMapMultiplier; 53a56 > fragmentLightMapMultiplier = vertexParam1; 71a75 > varying float fragmentLightMapMultiplier; 113,115c117,124 < vec4 finalColor = texture2D(texture, fragmentTextureCoordinate) * fragmentColor; < if (lightMapEnabled) < finalColor.rgb *= bicubicSample(lightMap, fragmentLightMapCoordinate, 1.0 / lightMapSize).rgb * lightMapMultiplier; --- > vec4 texColor = texture2D(texture, fragmentTextureCoordinate); > if (texColor.a <= 0.0) > discard; > > vec4 finalColor = texColor * fragmentColor; > float finalLightMapMultiplier = fragmentLightMapMultiplier * lightMapMultiplier; > if (lightMapEnabled && finalLightMapMultiplier > 0.0) > finalColor.rgb *= bicubicSample(lightMap, fragmentLightMapCoordinate, 1.0 / lightMapSize).rgb * finalLightMapMultiplier; scripts\behavior.lua 8,13c8 < function repeater(args, nodeId) < local args = parseArgs(args, { < maxLoops = -1, < untilSuccess = false < }) < local maxLoops = BData:getNumber(args.maxLoops) --- > function repeater(args, board, nodeId) 20c15 < until (maxLoops > 0 and loops >= maxLoops) or (result == true and args.untilSuccess) --- > until (args.maxLoops > 0 and loops >= args.maxLoops) or (result == true and args.untilSuccess) 25c20 < function failer(args, nodeId) --- > function failer(args, board, nodeId) 30c25 < function succeeder(args, nodeId) --- > function succeeder(args, board, nodeId) 35c30 < function inverter(args, nodeId) --- > function inverter(args, board, nodeId) 40,46c35,37 < function cooldown(args, nodeId) < local args = parseArgs(args, { < onFail = false, < onSuccess = true < }) < < local time = BData:getNumber("cooldown-"..nodeId) --- > function cooldown(args, board, nodeId) > local key = "cooldown-"..nodeId > local time = board:get("number", key) 53,54c44 < < local cooldown = BData:getNumber(args.cooldown) --- > local cooldown = args.cooldown 58c48 < BData:setNumber("cooldown-"..nodeId, world.time() + cooldown) --- > board:set("number", key, world.time() + cooldown) 63,67c53,59 < function filter(args, nodeId) < local newItems = {} < local items = BData:getList(args.list) < for _,filterItem in pairs(items) do < BData:set(args.type, "filterItem", filterItem) --- > function filter(args, board, nodeId) > if not args.list then return true end > > local i = 1 > while i <= #args.list do > local filterItem = args.list[i] > board:set(args.type, "filterItem", filterItem) 71,72c63,66 < if result == true then < table.insert(newItems, filterItem) --- > if result == false then > table.remove(args.list, i) > else > i = i + 1 75d68 < BData:setList(args.list, newItems) 79,82c72,76 < function each(args, nodeId) < local items = BData:getList(args.list) < for _,filterItem in pairs(items) do < BData:set(args.type, "eachItem", filterItem) --- > function each(args, board, nodeId) > if not args.list then return true end > > for _,each in pairs(args.list) do > board:set(args.type, "eachItem", each) 90,92c84,85 < function optional(args, nodeId) < local run = BData:getBool(args.shouldRun) < if run then --- > function optional(args, board, nodeId) > if args.shouldRun then 100,104c93 < function logResult(args, nodeId) < local args = parseArgs(args, { < text = "Log result: %s" < }) < --- > function logResult(args, board, nodeId) 110,116c99 < function debugNode(args, nodeId) < self.child.debug = true < local result = coroutine.yield() < return result < end < < function limiter(args, nodeId) --- > function limiter(args, board, nodeId) 118c101 < local runs = BData:getNumber("limiter-"..nodeId) or 0 --- > local runs = board:getNumber("limiter-"..nodeId) or 0 124c107 < BData:setNumber("limiter-"..nodeId, runs) --- > board:setNumber("limiter-"..nodeId, runs) 135c118 < coroutine.yield("running") --- > coroutine.yield(nil) 148c131 < coroutine.yield("running") --- > coroutine.yield(nil) 154,156d136 < args = parseArgs(args, { < text = "log info" < }) 165,168c145 < function getStorage(args, output) < args = parseArgs(args, { < key = "" < }) --- > function getStorage(args, board) 172,174c149,151 < local setType, name = BData.findType(output) < if setType then < BData:set(setType, name, value) --- > local output = {} > for _,type in pairs(DataTypes) do > output[type] = value 176c153 < return true --- > return true, output 184,190c161,167 < function setStorage(args, output) < args = parseArgs(args, { < key = nil < }) < local getType,index = BData.findType(args) < local value = type(index) ~= "string" and index or BData:get(getType, index) < storage[args.key] = value --- > function setStorage(args, board) > for _,type in pairs(DataTypes) do > if args[type] then > storage[args.key] = args[type] > break > end > end 199,204c176 < function entityConfigParameter(args, output) < args = parseArgs(args, { < path = "", < default = nil < }) < --- > function entityConfigParameter(args, board) 207,209c179,181 < local setType, name = BData.findType(output) < if setType then < BData:set(setType, name, value) --- > local output = {} > for _,type in pairs(DataTypes) do > output[type] = value 211c183 < return true --- > return true, output 218,222c190 < function worldProperty(args, output) < args = parseArgs(args, { < property = "" < }) < --- > function worldProperty(args, board) 226,228c194,196 < local setType, name = BData.findType(output) < if setType then < BData:set(setType, name, value) --- > local output = {} > for _,type in pairs(DataTypes) do > output[type] = value 230c198 < return true --- > return true, output 233,241c201,204 < -- args groupId < -- args name < -- args default < -- output [type] < function groupResource(args, output) < args = parseArgs(args, { < groupId = nil, < name = nil < }) --- > -- param groupId > -- param name > -- [output type list] > function groupResource(args, board) 244d206 < local setType,outputName = BData.findType(output) 246c208 < if setType == nil or value == nil then return false end --- > if value == nil then return false end 248,249c210,214 < BData:set(setType, outputName, value) < return true --- > local output = {} > for _,type in pairs(DataTypes) do > output[type] = value > end > return true, output 252,256c217,219 < function runFunction(args, output) < args = parseArgs(args, { < func = nil, < script = nil < }) --- > -- param func > -- param script > function runFunction(args, board) 271c234 < end \ No newline at end of file --- > end scripts\pathing.lua 26c26 < if not self:hasPath() and not self.aStar then --- > if not self.hasPath and not self.aStar then 39c39 < --- > 69a70 > self.hasPath = true 79d79 < util.debugText("Looking for path", vec2.add(mcontroller.position(), {0, -1}), "yellow") 84a85 > self.hasPath = false 88,91d88 < function PathFinder:hasPath() < return #self.edges > 0 < end < 102c99 < if self:hasPath() and self.stuckTimer > 0.5 then --- > if self.hasPath and self.stuckTimer > 0.5 then 114c111 < if not self:hasPath() then --- > if not self.hasPath then 133c130 < if self:hasPath() then --- > if self.hasPath then 152c149 < local pathOptions = parseArgs(options.pathOptions or {}, { --- > local pathOptions = applyDefaults(options.pathOptions or {}, { 172c169 < newPather.options = parseArgs(options, { --- > newPather.options = applyDefaults(options, { 183a181,183 > newPather.canOpenDoors = config.getParameter("pathing.canOpenDoors", false) > newPather.forceWalkingBackwards = config.getParameter("pathing.forceWalkingBackwards", false) > 190c190 < if config.getParameter("pathing.forceWalkingBackwards", false) then --- > if self.forceWalkingBackwards then 266,271d265 < local edgeDelta = world.distance(self.edge.target.position, self.edge.source.position) < < util.debugText(self.action, {self.position[1], self.position[2]-2}, "blue") < < local nextEdge = self.finder:lookAhead(1) or {} < local nextAction = nextEdge.action or "None" 273c267 < if config.getParameter("pathing.canOpenDoors", false) and not self:openDoors() then --- > if not self:openDoors() then 303d296 < util.debugRect(bounds, "blue") 307c300 < if #closedDoorIds == 0 or not config.getParameter("pathing.canOpenDoors", true) then --- > if #closedDoorIds == 0 or not self.canOpenDoors then 477c470,471 < moveX(self.delta[1], run) --- > local edgeDelta = world.distance(self.edge.target.position, self.edge.source.position) > moveX(edgeDelta[1], run) 493c487 < mcontroller.controlFly(vec2.mul(vec2.norm(self.delta), mcontroller.baseParameters().flySpeed), mcontroller.baseParameters().airForce) --- > mcontroller.controlFly(self.delta) scripts\pathutil.lua 58c58 < --Check if entity is on solid ground (not platforms) --- > --Check if entity is on solid ground (not platforms) 67c67 < return world.rectTileCollision(groundRegion, {"Null", "Block", "Dynamic"}) --- > return world.rectTileCollision(groundRegion, {"Null", "Block", "Dynamic", "Slippery"}) 77a78,142 > > function openDoorsAhead() > local bounds = rect.translate(mcontroller.boundBox(), mcontroller.position()) > bounds[2] = bounds[2] + 0.5 > bounds[4] = bounds[4] - 0.5 > if mcontroller.facingDirection() > 0 then > bounds[1] = bounds[3] > bounds[3] = bounds[3] + 1 > else > bounds[3] = bounds[1] > bounds[1] = bounds[1] - 1 > end > if world.rectTileCollision(bounds, {"Dynamic"}) then > -- There is a colliding object in the way. See if we can open it > local closedDoorIds = world.entityQuery(rect.ll(bounds), rect.ur(bounds), { includedTypes = {"object"}, callScript = "hasCapability", callScriptArgs = { "closedDoor" } }) > if #closedDoorIds == 0 then > return > else > for _, closedDoorId in pairs(closedDoorIds) do > world.sendEntityMessage(closedDoorId, "openDoor") > end > end > end > end > > function closeDoorsBehind() > local bounds = rect.translate(mcontroller.boundBox(), mcontroller.position()) > bounds[2] = bounds[2] + 0.5 > bounds[4] = bounds[4] - 0.5 > if mcontroller.facingDirection() > 0 then > bounds[3] = bounds[1] - 1 > bounds[1] = bounds[1] - 2 > else > bounds[1] = bounds[3] + 1 > bounds[3] = bounds[3] + 2 > end > if not world.rectTileCollision(bounds, {"Dynamic"}) then > local openDoorIds = world.entityQuery(rect.ll(bounds), rect.ur(bounds), { includedTypes = {"object"}, callScript = "hasCapability", callScriptArgs = { "openDoor" } }) > if #openDoorIds == 0 then > return > else > for _, openDoorId in pairs(openDoorIds) do > local doorBounds = objectBounds(openDoorId) > local npcs = world.entityQuery(rect.ll(doorBounds), rect.ur(doorBounds), {includedTypes = {"npc"}}) > if #npcs == 0 then > world.sendEntityMessage(openDoorId, "closeDoor") > end > end > end > end > end > > function objectBounds(objectId) > local bounds = {9999, 9999, 0, 0} > local spaces = world.objectSpaces(objectId) > for _,space in pairs(spaces) do > bounds = { > math.min(space[1], bounds[1]), > math.min(space[2], bounds[2]), > math.max(space[1] + 1, bounds[3]), > math.max(space[2] + 1, bounds[4]) > } > end > return rect.translate(bounds, world.entityPosition(objectId)) > end \ No newline at end of file scripts\rails.lua 183,184c183,189 < mcontroller.setVelocity({0, 0}) < self.moving = false --- > -- double check to make sure there's still a rail stop here (and that it's still stopped) > if self:checkTile(self.lastNode.position) == "metamaterial:railstop" then > mcontroller.setVelocity({0, 0}) > self.moving = false > else > self:railResume(self.lastNode.position) > end scripts\rect.lua 27a28,35 > function rect.withSize(min, size) > return {min[1], min[2], min[1] + size[1], min[2] + size[2]} > end > > function rect.withCenter(center, size) > return {center[1] - size[1] / 2, center[2] - size[2] / 2, center[1] + size[1] / 2, center[2] + size[2] / 2} > end > 48a57,67 > function rect.intersects(first, second) > if first[1] > second[3] > or first[3] < second[1] > or first[2] > second[4] > or first[4] < second[2] then > return false > else > return true > end > end > 97a117,130 > end > > function rect.bound(inner, outer) > if inner[4] > outer[4] then > inner = rect.translate(inner, {0, outer[4] - inner[4]}) > elseif inner[2] < outer[2] then > inner = rect.translate(inner, {0, outer[2] - inner[2]}) > end > if inner[3] > outer[3] then > inner = rect.translate(inner, {outer[3] - inner[3], 0}) > elseif inner[1] < outer[1] then > inner = rect.translate(inner, {outer[1] - inner[1], 0}) > end > return inner scripts\sensors.lua 29c29 < return world.pointTileCollision(position, {"Null", "Block", "Dynamic"}) --- > return world.pointTileCollision(position, {"Null", "Block", "Dynamic", "Slippery"}) 32c32 < return world.lineTileCollision(mcontroller.position(), position, {"Null", "Block", "Dynamic"}) --- > return world.lineTileCollision(mcontroller.position(), position, {"Null", "Block", "Dynamic", "Slippery"}) scripts\tenant.lua 42c42 < --- > 154,199d153 < end < < function hasGrumbles(args, output) < args = parseArgs(args, {}) < < return storage.grumbles and #storage.grumbles > 0 < end < < function sayGrumble(args, output) < args = parseArgs(args, {}) < < if storage.grumbles and #storage.grumbles > 0 then < local grumble = storage.grumbles[math.random(#storage.grumbles)][1] < return sayToEntity({ dialogType = "dialog.tenant.grumbles." .. grumble, entity = "self" }) < end < return false < end < < function spawnRentTreasure(args, output) < args = parseArgs(args, { < position = "self" < }) < < local position = BData:getPosition(args.position) < local promise = world.sendEntityMessage(storage.respawner, "getRent") < while not promise:finished() do < coroutine.yield() < end < < local rent = promise:result() < world.spawnTreasure(position, rent.pool, rent.level) < return true < end < < function replaceNpc(args, output) < args = parseArgs(args, { < npcType = "villager" < }) < < local npcType = args.npcType < if type(npcType) == "table" then < npcType = npcType[math.random(#npcType)] < end < < tenant.setNpcType(npcType) < return true scripts\util.lua 15c15 < if world.pointTileCollision(monster.toAbsolutePosition(sensor), {"Null", "Block", "Dynamic"}) then --- > if world.pointTileCollision(monster.toAbsolutePosition(sensor), {"Null", "Block", "Dynamic", "Slippery"}) then 346c346 < function util.run(duration, action) --- > function util.run(duration, action, ...) 351c351 < coroutine.yield() --- > coroutine.yield(nil, ...) 372a373,390 > function util.untilNotNil(func) > local v > while true do > v = func() > if v ~= nil then return v end > coroutine.yield() > end > end > > function util.untilNotEmpty(func) > local v > while true do > v = func() > if v ~= nil and #v > 0 then return v end > coroutine.yield() > end > end > 486c504 < function parseArgs(args, defaults) --- > function applyDefaults(args, defaults) 492a511,519 > function parseArgs(args, defaults) > for k,v in pairs(defaults) do > if args[k] == nil then > error(string.format("No default set for arg %s in: args: %s defaults: %s", k, args, defaults)) > end > end > return args > end > 567a595,614 > function util.easeInOutSin(ratio, initial, delta) > local ratio = ratio * 2 > if ratio < 1 then > return initial + (math.sin((ratio * math.pi / 2) - (math.pi / 2)) + 1.0) * delta / 2 > else > sb.logInfo("%s", math.sin((ratio - 1) * math.pi / 2)) > return initial + (delta / 2) + (math.sin((ratio - 1) * math.pi / 2) * delta / 2) > end > end > > function util.easeInOutExp(ratio, initial, delta, exp) > ratio = ratio * 2 > if ratio < 1 then > return delta / 2 * (ratio ^ exp) + initial > else > local r = 1 - (1 - (ratio - 1)) ^ exp > return initial + (delta / 2) + (r * delta / 2) > end > end > 646c693 < function util.randomFromList(list) --- > function util.randomFromList(list, randomSource) 648c695,699 < return list[math.random(1,#list)] --- > if randomSource then > return list[randomSource:randInt(1, #list)] > else > return list[math.random(1,#list)] > end 718a770,791 > function util.replaceTag(data, tagName, tagValue) > local tagString = "<"..tagName..">" > if type(data) == "table" then > local newData = {} > > for k, v in pairs(data) do > local newKey = k > if type(k) == "string" and k:find(tagString) then > newKey = k:gsub(tagString, tagValue) > end > > newData[newKey] = util.replaceTag(v, tagName, tagValue) > end > > return newData > elseif type(data) == "string" and data:find(tagString) then > return data:gsub(tagString, tagValue) > else > return data > end > end > 867,868c940,947 < self.state = coroutine.wrap(state) < self.state(...) --- > self.state = coroutine.create(state) > self:resume(...) > end > > function FSM:resume(...) > local s, r = coroutine.resume(self.state, ...) > if not s then error(r) end > return r 872c951,953 < return self.state and self.state() --- > if self.state then > return self:resume() > end scripts\vec2.lua 73a74,75 > if angle == 0 then return {vector[1], vector[2]} end > 84c86,87 < return vec2.rotate({magnitude or 1, 0}, angle) --- > magnitude = magnitude or 1 > return {math.cos(angle) * magnitude, math.sin(angle) * magnitude} scripts\versioningutils.lua 113a114,135 > > function compare(t1,t2) > if t1 == t2 then return true end > if type(t1) ~= type(t2) then return false end > if type(t1) ~= "table" then return false end > for k,v in pairs(t1) do > if not compare(v, t2[k]) then return false end > end > for k,v in pairs(t2) do > if not compare(v, t1[k]) then return false end > end > return true > end > > function find(t, predicate) > local current = 0 > for i,value in ipairs(t) do > if predicate(value) then > return value, i > end > end > end scripts\actions\animator.lua 16a17,19 > if fallback == "" then > fallback = nil > end 35,37c38,43 < for stateType,fallback in pairs(self.animateFallbacks) do < if self.animationControls[stateType] == false then < animator.setAnimationState(stateType, fallback) --- > for _,stateType in pairs(util.keys(self.animationControls)) do > local fallback = self.animateFallbacks[stateType] > if not self.animationControls[stateType] then > if fallback then > animator.setAnimationState(stateType, fallback) > end 78,82c84 < function setAnimationState(args, output) < args = parseArgs(args, { < type = nil, < state = nil < }) --- > function setAnimationState(args, board) 86a89 > self.animateFallbacks[args.type] = nil 96,103c99,100 < function animate(args, output) < args = parseArgs(args, { < type = nil, < state = nil, < fallback = nil < }) < < if args.fallback == nil or args.fallback == "" then --- > function animate(args, board) > if args.state == nil or args.state == "" then 115,119c112 < function loopSound(args, output) < args = parseArgs(args, { < sound = nil < }) < --- > function loopSound(args, board) 129,133c122 < function setGlobalTag(args, output) < args = parseArgs(args, { < type = nil, < tag = nil < }) --- > function setGlobalTag(args, board) 141a131 > -- param group 145,152c135 < function transform(args, output) < args = parseArgs(args, { < group = nil, < rotation = nil, < rotationCenter = nil, < translation = nil < }) < --- > function transform(args, board) 156,158d138 < local rotation = BData:getNumber(args.rotation) < local rotationCenter = BData:getVec2(args.rotationCenter) < local translation = BData:getVec2(args.translation) 160,161c140,145 < if rotation then < animator.rotateTransformationGroup(args.group, rotation) --- > if args.rotation then > if args.rotationCenter then > animator.rotateTransformationGroup(args.group, args.rotation, args.rotationCenter) > else > animator.rotateTransformationGroup(args.group, args.rotation) > end 163,164c147,148 < if translation then < animator.translateTransformationGroup(args.group, translation) --- > if args.translation then > animator.translateTransformationGroup(args.group, args.translation) 172,175c156 < function resetTransformationGroup(args, output) < args = parseArgs(args, { < transformationGroup = nil < }) --- > function resetTransformationGroup(args, board) 184,191c165,166 < function rotateTransformationGroup(args, output) < args = parseArgs(args, { < transformationGroup = nil, < angle = 0, < rotationCenter = nil < }) < local angle = BData:getNumber(args.angle) < if angle == nil or args.transformationGroup == nil or args.transformationGroup == "" then --- > function rotateTransformationGroup(args, board) > if args.angle == nil or args.transformationGroup == nil or args.transformationGroup == "" then 195,196c170 < local rotationCenter = BData:getVec2(args.rotationCenter) < animator.rotateTransformationGroup(args.transformationGroup, angle, rotationCenter) --- > animator.rotateTransformationGroup(args.transformationGroup, args.angle, args.rotationCenter) 200,207c174,177 < function translateTransformationGroup(args, output) < args = parseArgs(args, { < transformationGroup = nil, < offset = {0, 0} < }) < local offset = BData:getVec2(args.offset) < < animator.translateTransformationGroup(args.transformationGroup, offset) --- > -- param transformationGroup > -- param offset > function translateTransformationGroup(args, board) > animator.translateTransformationGroup(args.transformationGroup, args.offset) 211,218c181,182 < function scaleTransformationGroup(args, output) < args = parseArgs(args, { < transformationGroup = nil, < scale = 1 < }) < local scale = BData:getNumber(args.scale) < < animator.scaleTransformationGroup(args.transformationGroup, scale) --- > function scaleTransformationGroup(args, board) > animator.scaleTransformationGroup(args.transformationGroup, args.scale) 223,227c187 < function burstParticleEmitter(args, output) < args = parseArgs(args, { < emitter = nil < }) < --- > function burstParticleEmitter(args, board) 236,239c196 < function setParticleEmitterActive(args, output) < args = parseArgs(args, { < active = true < }) --- > function setParticleEmitterActive(args, board) 247,251c204 < function emitParticles(args, output) < args = parseArgs(args, { < emitter = nil < }) < --- > function emitParticles(args, board) 260,264c213,214 < function playSound(args, output) < args = parseArgs(args, { < sound = nil, < loops = 0 < }) --- > -- param loops > function playSound(args, board) 266,268c216 < < local loops = BData:getNumber(args.loops) < animator.playSound(args.sound, loops) --- > animator.playSound(args.sound, args.loops) 272,276c220,221 < function stopAllSounds(args, output) < args = parseArgs(args, { < sound = nil < }) < --- > -- param sound > function stopAllSounds(args, board) 281,285c226,228 < function setLightActive(args, output) < args = parseArgs(args, { < light = nil, < active = true < }) --- > -- param light > -- param active > function setLightActive(args, board) scripts\actions\builders.lua 3c3,4 < -- Actions that dynamically build a behavior tree --- > -- Stores behavior trees for this context so they don't need to be rebuilt every time > BuilderTreeCache = {} 6c7 < function sequenceActions(args, output, nodeId, dt) --- > function sequenceActions(args, board, nodeId, dt) 9c10 < local tree = BData:getTable("sequenceActions-"..nodeId) --- > local tree = BuilderTreeCache["sequenceActions-"..nodeId] 16a18,24 > if action.parameters then > for k,v in pairs(action.parameters) do > if type(v) ~= "table" or (v.key == nil and v.value == nil) then > action.parameters[k] = {value = v} > end > end > end 27c35 < cooldown = action.cooldown --- > cooldown = {value = action.cooldown} 36,38c44,45 < local newTree = root.behavior({name = "sequenceActions-"..nodeId, root = sequence, scripts = jarray()}, config.getParameter("behaviorConfig", {})) < tree = {newTree, newTree:init(_ENV)} < BData:setTable("sequenceActions-"..nodeId, tree) --- > tree = behavior.behavior({name = "sequenceActions-"..nodeId, root = sequence, scripts = jarray()}, config.getParameter("behaviorConfig", {}), _ENV, board) > BuilderTreeCache["sequenceActions-"..nodeId] = tree 40c47 < tree[1]:clear() --- > tree:clear() 44c51 < local result = tree[1]:run(tree[2], dt) --- > local result = tree:run(dt) 54c61 < function selectorActions(args, output, nodeId, dt) --- > function selectorActions(args, board, nodeId, dt) 57c64 < local tree = BData:getTable("selectorActions-"..nodeId) --- > local tree = BuilderTreeCache["selectorActions-"..nodeId] 59d65 < local dynamic = BData:getBool(args.dynamic) 62c68 < name = dynamic and "dynamic" or "selector", --- > name = args.dynamic and "dynamic" or "selector", 65a72,78 > if action.parameters then > for k,v in pairs(action.parameters) do > if type(v) ~= "table" or (v.key == nil and v.value == nil) then > action.parameters[k] = {value = v} > end > end > end 76c89 < cooldown = action.cooldown --- > cooldown = {value = action.cooldown} 85,87c98,99 < local newTree = root.behavior({name = "selectorActions-"..nodeId, root = selector, scripts = jarray()}, config.getParameter("behaviorConfig", {})) < tree = {newTree, newTree:init(_ENV)} < BData:setTable("selectorActions-"..nodeId, tree) --- > tree = behavior.behavior({name = "selectorActions-"..nodeId, root = selector, scripts = jarray()}, config.getParameter("behaviorConfig", {}), _ENV, board) > BuilderTreeCache["selectorActions-"..nodeId] = tree 89c101 < tree[1]:clear() --- > tree:clear() 93c105 < local result = tree[1]:run(tree[2], dt) --- > local result = tree:run(dt) 103c115 < function parallelActions(args, output, nodeId, dt) --- > function parallelActions(args, board, nodeId, dt) 106c118 < local tree = BData:getTable("parallelActions-"..nodeId) --- > local tree = BuilderTreeCache["parallelActions-"..nodeId] 113a126,132 > if action.parameters then > for k,v in pairs(action.parameters) do > if type(v) ~= "table" or (v.key == nil and v.value == nil) then > action.parameters[k] = {value = v} > end > end > end 124c143 < cooldown = action.cooldown --- > cooldown = {value = action.cooldown} 134,136c153,154 < local newTree = root.behavior({name = "parallelActions-"..nodeId, root = parallel, scripts = jarray()}, config.getParameter("behaviorConfig", {})) < tree = {newTree, newTree:init(_ENV)} < BData:setTable("parallelActions-"..nodeId, tree) --- > tree = behavior.behavior({name = "parallelActions-"..nodeId, root = parallel, scripts = jarray()}, config.getParameter("behaviorConfig", {}), _ENV, board) > BuilderTreeCache["parallelActions-"..nodeId] = tree 138c156 < tree[1]:clear() --- > tree:clear() 142c160 < local result = tree[1]:run(tree[2], dt) --- > local result = tree:run(dt) scripts\actions\container.lua 5c5 < function containerAddItem(args, output) --- > function containerAddItem(args, board) 10c10 < parameters = {} --- > parameters = {} 12,13c12 < local entityId = BData:getEntity(args.entity) < if args.itemName == nil or entityId == nil then return false end --- > if args.itemName == nil or args.entity == nil then return false end 15c14 < if world.containerAddItems(entityId, {name = args.itemName, amount = args.amount, parameters = args.parameters}) then --- > if world.containerAddItems(args.entity, {name = args.itemName, amount = args.amount, parameters = args.parameters}) then scripts\actions\crawling.lua 13,18c13 < function crawl(args, output) < args = parseArgs(args, { < direction = "facingDirection", < run = false < }) < --- > function crawl(args, board) 37,38c32 < local direction = BData:getNumber(args.direction) < if direction == nil then return false end --- > if args.direction == nil then return false end 40c34 < headingAngle = adjustCornerHeading(headingAngle, direction) --- > headingAngle = adjustCornerHeading(headingAngle, args.direction) 44,46d37 < < local moveDirection = vec2.rotate({direction, 0}, headingAngle) < mcontroller.controlApproachVelocityAlongAngle(math.atan(moveDirection[2], moveDirection[1]), moveSpeed, 2000) 48,49c39,40 < BData:setVec2(output.headingDirection, vec2.withAngle(headingAngle)) < BData:setNumber(output.headingAngle, headingAngle) --- > local moveDirection = vec2.rotate({args.direction, 0}, headingAngle) > mcontroller.controlApproachVelocityAlongAngle(math.atan(moveDirection[2], moveDirection[1]), moveSpeed, 2000) 52c43 < gravityEnabled = false --- > gravityEnabled = false 55c46 < coroutine.yield("running") --- > coroutine.yield(nil, {headingDirection = vec2.withAngle(headingAngle), headingAngle = headingAngle}) 61,64c52 < BData:setVec2(output.headingDirection, {1,0}) < BData:setNumber(output.forwardAngle, 0) < < return false --- > return false, {headingDirection = {1, 0}, forwardAngle = 0} 68,73c56 < function wallSit(args, output) < args = parseArgs(args, { < rotationRate = 0.25, < rotationStepsPerUpdate = 5 < }) < --- > function wallSit(args, board) 84,86d66 < BData:setVec2(output.groundDirection, groundDirection) < BData:setNumber(output.forwardAngle, headingAngle) < 88c68 < gravityEnabled = false --- > gravityEnabled = false 90c70 < coroutine.yield("running") --- > coroutine.yield(nil, {groundDirection = groundDirection, forwardAngle = headingAngle}) 93,96c73 < BData:setVec2(output.groundDirection, {0,-1}) < BData:setNumber(output.forwardAngle, 0) < < return false --- > return false, {groundDirection = {0, -1}, forwardAngle = 0} 124c101,102 < function findGroundDirection() --- > function findGroundDirection(testDistance) > testDistance = testDistance or 0.25 128c106 < local testPos = vec2.add(mcontroller.position(), vec2.withAngle(angle, 0.25)) --- > local testPos = vec2.add(mcontroller.position(), vec2.withAngle(angle, testDistance)) 133c111 < end \ No newline at end of file --- > end scripts\actions\crew.lua 3,4c3 < function hasRecruiter(args, output) < args = parseArgs(args, {}) --- > function hasRecruiter(args, board) 9,11c8 < function recruiterEntity(args, output) < args = parseArgs(args, {}) < --- > function recruiterEntity(args, board) 18,22c15 < if output.entity then < BData:setEntity(output.entity, entityId) < end < < return true --- > return true, {entity = entityId} 25,27c18 < function isFollowingRecruiter(args, output) < args = parseArgs(args, {}) < --- > function isFollowingRecruiter(args, board) 31,33c22 < function hasFieldBenefit(args, output) < args = parseArgs(args, {}) < --- > function hasFieldBenefit(args, board) 43,45c32 < function hasCombatBenefit(args, output) < args = parseArgs(args, {}) < --- > function hasCombatBenefit(args, board) 55,56c42 < function triggerFieldBenefit(args, output) < args = parseArgs(args, {}) --- > function triggerFieldBenefit(args, board) 61,62c47 < function triggerCombatBenefit(args, output) < args = parseArgs(args, {}) --- > function triggerCombatBenefit(args, board) scripts\actions\dialog.lua 85,87c85 < function receiveClueDialog(args, output) < args = parseArgs(args, {}) < --- > function receiveClueDialog(args, board) 91,93d88 < BData:setTable(output.dialog, dialog) < BData:setEntity(output.source, notification.sourceId) < 96c91 < return true --- > return true, {dialog = dialog, source = notification.sourceId} 102a98 > -- param dialog 104,118c100,102 < function sayToEntity(args, output) < args = parseArgs(args, { < dialogType = "converse.dialog", < dialog = nil, < entity = "target", < tags = {} < }) < local entityId = BData:getEntity(args.entity) < < local dialog = BData:getTable(args.dialog) < if dialog then < dialog = speciesDialog(dialog, entityId) < else < dialog = queryDialog(args.dialogType, entityId) < end --- > -- param tags > function sayToEntity(args, board) > local dialog = args.dialog and speciesDialog(args.dialog, args.entity) or queryDialog(args.dialogType, args.entity); 135c119 < if entityId then args.tags.entityname = world.entityName(entityId) end --- > if args.entity then args.tags.entityname = world.entityName(args.entity) end 149,154c133,134 < function inspectEntity(args, output) < args = parseArgs(args, { < entity = "target" < }) < local entityId = BData:getEntity(args.entity) < if not entityId or not world.entityExists(entityId) then return false end --- > function inspectEntity(args, board) > if not args.entity or not world.entityExists(args.entity) then return false end 163c143 < local dialog = world.entityDescription(entityId, species) --- > local dialog = world.entityDescription(args.entity, species) 172,179c152,154 < function getDialog(args, output) < args = parseArgs(args, { < dialogType = "converse.dialog", < entity = nil < }) < local entityId = BData:getEntity(args.entity) < self.currentDialog = copy(queryDialog(args.dialogType, entityId)) < self.currentDialogTarget = entityId --- > function getDialog(args, board) > self.currentDialog = copy(queryDialog(args.dialogType, args.entity)) > self.currentDialogTarget = args.entity 188,193c163 < function say(args, output) < args = parseArgs(args, { < content = "nil", < tags = {} < }) < --- > function say(args, board) 212,216c182 < function sayNext(args, output) < args = parseArgs(args, { < tags = {} < }) < --- > function sayNext(args, board) 243,246d208 < args = parseArgs(args, { < tags = {} < }) < 248d209 < scripts\actions\entity.lua 13,19c13,14 < function setInteractive(args, output) < args = parseArgs(args, { < interactive = true < }) < < local interactive = BData:getBool(args.interactive) < entityTable().setInteractive(interactive) --- > function setInteractive(args, board) > entityTable().setInteractive(args.interactive) 23c18 < function wasInteracted(args, output) --- > function wasInteracted(args, board) 27c22 < function wasDamaged(args, output) --- > function wasDamaged(args, board) 31c26 < function wasStunned(args, output) --- > function wasStunned(args, board) 36,41c31,32 < function setAggressive(args, output) < args = parseArgs(args, { < aggressive = false < }) < local aggressive = BData:getBool(args.aggressive) < if aggressive == nil then return false end --- > function setAggressive(args, board) > if args.aggressive == nil then return false end 43c34 < entityTable().setAggressive(aggressive) --- > entityTable().setAggressive(args.aggressive) 47,50c38 < -- param aggressive < function controlAggressive(args, output) < args = parseArgs(args, {}) < --- > function controlAggressive(args, board) 56,63c44,47 < function setDamageTeam(args, output) < args = parseArgs(args, { < damageTeam = nil < }) < local damageTeam = BData:getTable(args.damageTeam) < if damageTeam == nil then return false end < < entityTable().setDamageTeam(damageTeam) --- > function setDamageTeam(args, board) > if args.damageTeam == nil then return false end > > entityTable().setDamageTeam(args.damageTeam) 67,73c51,53 < -- param damageTeamType < function isDamageTeam(args, output) < args = parseArgs(args, { < type = nil, < team = nil < }) < --- > -- param type > -- param team > function isDamageTeam(args, board) 75,77c55 < < local team = BData:getNumber(args.team) < if team ~= nil and damageTeam.team ~= team then --- > if args.team ~= nil and damageTeam.team ~= args.team then 88,93c66,67 < function isValidTarget(args, output) < args = parseArgs(args, { < entity = nil < }) < local entityId = BData:getEntity(args.entity) < if entityId == nil then return false end --- > function isValidTarget(args, board) > if args.entity == nil then return false end 95c69 < return entity.isValidTarget(entityId) --- > return entity.isValidTarget(args.entity) 99,108c73,74 < function setDamageOnTouch(args, output) < args = parseArgs(args, { < touchDamage = false < }) < < local touchDamage = BData:getBool(args.touchDamage) < if type(touchDamage) ~= "boolean" then < error(string.format("Invalid type %s for %s with value %s", type(touchDamage), args.touchDamage, touchDamage)) < end < self.touchDamageEnabled = touchDamage --- > function setDamageOnTouch(args, board) > self.touchDamageEnabled = args.touchDamage 112,121c78,79 < function setDying(args, output) < args = parseArgs(args, { < shouldDie = true < }) < < local shouldDie = BData:getBool(args.shouldDie) < if type(shouldDie) ~= "boolean" then < error(string.format("Invalid type %s for %s with value %s", type(shouldDie), args.shouldDie, shouldDie)) < end < self.shouldDie = shouldDie --- > function setDying(args, board) > self.shouldDie = args.shouldDie 126,129c84,85 < function entityInSight(args, output) < args = parseArgs(args, { < entity = "self" < }) --- > function entityInSight(args, board) > if args.entity == nil or not world.entityExists(args.entity) then return false end 131,134c87 < local entityId = BData:getEntity(args.entity) < if entityId == nil or not world.entityExists(entityId) then return false end < < local inSight = entity.entityInSight(entityId) --- > local inSight = entity.entityInSight(args.entity) 140c93 < local liquid = world.liquidAlongLine(entity.position(), world.entityPosition(entityId)) --- > local liquid = world.liquidAlongLine(entity.position(), world.entityPosition(args.entity)) 145c98 < --- > 147c100 < end \ No newline at end of file --- > end scripts\actions\flying.lua 1,170c1,246 < require "/scripts/poly.lua" < < < -- param keepGroundDistance < -- param keepCeilingDistance < -- param yVelocityVariance < -- param maxXVelocityu < -- param maxYVelocity < function flyAlongGround(args, output) < args = parseArgs(args, { < keepGroundDistance = 10, < keepCeilingDistance = 10, < yVelocityVariance = 0, < maxXVelocity = 8, < maxYVelocity = 4 < }) < < local keepGroundDistance = BData:getNumber(args.keepGroundDistance) < local keepCeilingDistance = BData:getNumber(args.keepCeilingDistance) < local maxXVelocity = BData:getNumber(args.maxXVelocity) < local maxYVelocity = BData:getNumber(args.maxYVelocity) < local baseParameters = mcontroller.baseParameters() < < if not keepGroundDistance or not keepCeilingDistance or not maxXVelocity or not maxYVelocity then return false end < < while true do < local groundLine = poly.translate({{0, 0}, {0, -keepGroundDistance * 2}}, mcontroller.position()) < local ceilingLine = poly.translate({{0, 0}, {0, keepCeilingDistance}}, mcontroller.position()) < local groundPoint = world.lineCollision(groundLine[1], groundLine[2]) or groundLine[2] < local ceilingPoint = world.lineCollision(ceilingLine[1], ceilingLine[2]) or ceilingLine[2] < < -- Find liquid < local x = mcontroller.position()[1] < for y=groundLine[1][2], groundPoint[2], -1 do < y = math.floor(y) < local liquid = world.liquidAt({x, y}) < if liquid then < groundPoint = {x, y + liquid[2]} < break < end < end < < -- Move the ground point up by the height we want to keep, < -- gives us the y position we want to stay around < local groundApproachPoint = vec2.add(groundPoint, {0, keepGroundDistance}) < local keepGroundDistanceFactor = world.distance(groundApproachPoint, mcontroller.position())[2] / keepGroundDistance < < -- Keep away from the ceiling < local keepCeilingDistanceFactor = (-keepCeilingDistance + world.distance(ceilingPoint, mcontroller.position())[2]) / keepCeilingDistance < < local yVelocityFactor = keepGroundDistanceFactor + keepCeilingDistanceFactor < < mcontroller.controlApproachVelocity({mcontroller.facingDirection() * maxXVelocity, yVelocityFactor * maxYVelocity}, baseParameters.airForce) < < coroutine.yield("running") < end < end < < -- param centerPosition < -- param maxDistance < -- param collisionArea < -- param lerpStep < -- output position < function findAirPosition(args, output) < args = parseArgs(args, { < centerPosition = "self", < maxDistance = 10, < collisionArea = {-1, -1, 1, 1}, < lerpStep = 1 < }) < < local center = BData:getPosition(args.centerPosition) < local maxDistance = BData:getNumber(args.maxDistance) < local lerpStep = BData:getNumber(args.lerpStep) < if center == nil or maxDistance == nil then return false end < < for i = 0, maxDistance, lerpStep do < for a = 0, math.pi*2, math.pi/4 do < local dir = {math.cos(a), math.sin(a)} < local position = vec2.add(center, vec2.mul(dir, i)) < if not world.rectTileCollision(rect.translate(args.collisionArea, position)) then < BData:setPosition(output.position, position) < return true < end < end < end < < return false < end < < -- param position < -- param maxAngle < -- param speed < function flyInGeneralDirection(args, output) < args = parseArgs(args, { < position = nil, < maxAngle = 30, < speed = mcontroller.baseParameters().flySpeed < }) < < local direction < while true do < mcontroller.controlDown() < < local position = BData:getPosition(args.position) < local speed = BData:getNumber(args.speed) < local maxAngle = util.toRadians(BData:getNumber(args.maxAngle)) < < local toTarget = vec2.norm(world.distance(position, mcontroller.position())) < if direction == nil or math.acos(vec2.dot(toTarget, direction)) > maxAngle then < direction = vec2.rotate(toTarget, (util.randomDirection() * math.random() * maxAngle)) < end < < mcontroller.controlApproachVelocity(vec2.mul(direction, speed), mcontroller.baseParameters().airForce) < mcontroller.controlFace(util.toDirection(toTarget[1])) < util.debugLine(mcontroller.position(), vec2.add(mcontroller.position(), vec2.mul(direction, 10)), "blue") < util.debugLine(mcontroller.position(), position, "yellow") < < coroutine.yield("running") < end < < return true < end < < < function swarmPosition(args, output, _, dt) < args = parseArgs(args, { < maxRange = 8, < minMoveDistance = 4, < idleTime = 0.5, < center = nil < }) < < local minMoveDistance, maxRange, idleTime = BData:getNumber(args.minMoveDistance), BData:getNumber(args.maxRange), BData:getNumber(args.idleTime) < local bounds = mcontroller.boundBox() < < while true do < local center = BData:getPosition(args.center) < local position = center < < if world.lineTileCollision(position, mcontroller.position()) then < return false < end < repeat < local distance = math.random(0, maxRange) < local angle = math.random() * math.pi * 2 < local offset = {math.cos(angle) * distance, math.sin(angle) * distance} < position = vec2.add(center, offset) < coroutine.yield("running") < until not world.lineTileCollision(center, position) < and not world.rectTileCollision(rect.translate(bounds, position)) < and world.magnitude(position, mcontroller.position()) > minMoveDistance < < repeat < local toTarget = world.distance(position, mcontroller.position()) < mcontroller.controlFly(vec2.mul(vec2.norm(toTarget), mcontroller.baseParameters().flySpeed)) < < if world.rectTileCollision(rect.translate(rect.pad(bounds, 0.25), mcontroller.position())) then < return false < end < coroutine.yield("running") < until world.magnitude(position, mcontroller.position()) < 1.0 < < local timer = idleTime < while timer > 0 do < timer = timer - dt < dt = coroutine.yield("running") < end < end < end --- > require "/scripts/poly.lua" > > > -- param keepGroundDistance > -- param keepCeilingDistance > -- param yVelocityVariance > -- param maxXVelocityu > -- param maxYVelocity > function flyAlongGround(args, board) > local baseParameters = mcontroller.baseParameters() > > if not args.keepGroundDistance or not keepCeilingDistance or not args.maxXVelocity or not args.maxYVelocity then return false end > > while true do > local groundLine = poly.translate({{0, 0}, {0, -args.keepGroundDistance * 2}}, mcontroller.position()) > local ceilingLine = poly.translate({{0, 0}, {0, args.keepCeilingDistance}}, mcontroller.position()) > local groundPoint = world.lineCollision(groundLine[1], groundLine[2]) or groundLine[2] > local ceilingPoint = world.lineCollision(ceilingLine[1], ceilingLine[2]) or ceilingLine[2] > > -- Find liquid > local x = mcontroller.position()[1] > for y=groundLine[1][2], groundPoint[2], -1 do > y = math.floor(y) > local liquid = world.liquidAt({x, y}) > if liquid then > groundPoint = {x, y + liquid[2]} > break > end > end > > -- Move the ground point up by the height we want to keep, > -- gives us the y position we want to stay around > local groundApproachPoint = vec2.add(groundPoint, {0, args.keepGroundDistance}) > local keepGroundDistanceFactor = world.distance(groundApproachPoint, mcontroller.position())[2] / args.keepGroundDistance > > -- Keep away from the ceiling > local keepCeilingDistanceFactor = (-args.keepCeilingDistance + world.distance(ceilingPoint, mcontroller.position())[2]) / args.keepCeilingDistance > > local yVelocityFactor = keepGroundDistanceFactor + keepCeilingDistanceFactor > > mcontroller.controlApproachVelocity({mcontroller.facingDirection() * args.maxXVelocity, yVelocityFactor * args.maxYVelocity}, baseParameters.airForce) > > coroutine.yield() > end > end > > -- param centerPosition > -- param maxDistance > -- param collisionArea > -- param lerpStep > -- output position > function findAirPosition(args, board) > if args.centerPosition == nil or args.maxDistance == nil then return false end > > for i = 0, args.maxDistance, args.lerpStep do > for a = 0, math.pi*2, math.pi/4 do > local dir = {math.cos(a), math.sin(a)} > local position = vec2.add(args.centerPosition, vec2.mul(dir, i)) > if not world.rectTileCollision(rect.translate(args.collisionArea, position)) then > return true, {position = position} > end > end > end > > return false > end > > -- param position > -- param maxAngle > -- param speed > function flyInGeneralDirection(args, board) > local speed = args.speed or mcontroller.baseParameters().flySpeed > > local direction > while true do > mcontroller.controlDown() > local maxAngle = util.toRadians(args.maxAngle) > > local toTarget = vec2.norm(world.distance(args.position, mcontroller.position())) > if direction == nil or math.acos(vec2.dot(toTarget, direction)) > maxAngle then > direction = vec2.rotate(toTarget, (util.randomDirection() * math.random() * maxAngle)) > end > > mcontroller.controlApproachVelocity(vec2.mul(direction, speed), mcontroller.baseParameters().airForce) > mcontroller.controlFace(util.toDirection(toTarget[1])) > > coroutine.yield() > end > > return true > end > > > function swarmPosition(args, board, _, dt) > local bounds = mcontroller.boundBox() > local position = args.center > > if world.lineTileCollision(position, mcontroller.position()) then > return false > end > repeat > local distance = math.random(0, args.maxRange) > local angle = math.random() * math.pi * 2 > local offset = {math.cos(angle) * distance, math.sin(angle) * distance} > position = vec2.add(args.center, offset) > coroutine.yield() > until not world.lineTileCollision(args.center, position) > and not world.rectTileCollision(rect.translate(bounds, position)) > and world.magnitude(position, mcontroller.position()) > args.minMoveDistance > > repeat > local toTarget = world.distance(position, mcontroller.position()) > mcontroller.controlFly(toTarget) > > if world.rectTileCollision(rect.translate(rect.pad(bounds, 0.25), mcontroller.position())) then > return false > end > coroutine.yield() > until world.magnitude(position, mcontroller.position()) < 1.0 > > local timer = args.idleTime > while timer > 0 do > timer = timer - dt > dt = coroutine.yield() > end > return true > end > > -- param entity > -- param turnSpeed > -- output angle > -- output direction > function approachTurn(args, output, _, dt) > local targetPosition = world.entityPosition(args.entity) > local distance = world.magnitude(targetPosition, mcontroller.position()) > while true do > local toTarget = world.distance(targetPosition, mcontroller.position()) > local angle = mcontroller.rotation() > > local targetAngle = vec2.angle(toTarget) > local diff = util.angleDiff(angle, targetAngle) > if diff ~= 0 then > angle = angle + (util.toDirection(diff) * args.turnSpeed) * dt > if util.angleDiff(angle, targetAngle) * diff < 0 then > angle = targetAngle > end > end > > local collisionRect = rect.translate(mcontroller.boundBox(), vec2.add(mcontroller.position(), vec2.withAngle(angle, 0.25))) > if world.rectTileCollision(collisionRect) then > angle = angle + math.pi > mcontroller.setVelocity(vec2.mul(mcontroller.velocity(), -1)) > end > > mcontroller.setRotation(angle) > local speed = ((1 - math.min(0.5, math.abs(diff / math.pi))) ^ 2) * mcontroller.baseParameters().flySpeed > mcontroller.controlApproachVelocity(vec2.withAngle(angle, speed), mcontroller.baseParameters().airForce, true) > > coroutine.yield(nil, {angle = angle, direction = direction}) > > targetPosition = world.entityPosition(args.entity) > distance = world.magnitude(targetPosition, mcontroller.position()) > end > end > > function approachBurn(args, output, _, dt) > local burn = function(toVelocity) > local timer = args.burnTime > local angle = vec2.angle(vec2.sub(toVelocity, mcontroller.velocity())) > while timer > 0 do > timer = timer - dt > mcontroller.controlApproachVelocity(toVelocity, mcontroller.baseParameters().airForce) > coroutine.yield(nil, {burning = true, angle = angle}) > end > end > > local flySpeed = mcontroller.baseParameters().flySpeed > > local targetPosition = world.entityPosition(args.entity) > local toTarget = vec2.norm(world.distance(targetPosition, entity.position())) > local targetVelocity = world.entityVelocity(args.entity) > > local distance = world.magnitude(entity.position(), targetPosition) > local approach = vec2.add(targetPosition, vec2.mul(toTarget, -args.approachRadius)) > local toApproach = vec2.norm(world.distance(approach, entity.position())) > local approachSpeed = flySpeed + vec2.mag(targetVelocity) > if distance < args.approachRadius * 2 then > local angle = math.atan(args.approachRadius, distance / 2) > local directions = { > vec2.rotate(toTarget, angle), > vec2.rotate(toTarget, -angle) > } > shuffle(directions) > > for _,dir in pairs(directions) do > local test = vec2.add(targetPosition, vec2.mul(dir, args.approachRadius)) > if not world.lineTileCollision(entity.position(), test) then > approach = test > break > end > end > local approachVelocity = vec2.mul(vec2.norm(world.distance(approach, entity.position())), flySpeed) > approachSpeed = vec2.mag(vec2.add(approachVelocity, targetVelocity)) > approach = util.predictedPosition(approach, entity.position(), targetVelocity, approachSpeed) > end > > local toApproach = vec2.norm(world.distance(approach, entity.position())) > burn(vec2.mul(toApproach, approachSpeed)) > > -- while going in roughly the same direction > -- at roughly the same speed > -- and still moving toward the approach position > -- and still within a reasonable range of the target > while vec2.dot(mcontroller.velocity(), toApproach) > 0.95 > and vec2.mag(mcontroller.velocity()) / approachSpeed > 0.75 > and vec2.dot(world.distance(approach, entity.position()), toApproach) > 0 do > > world.debugLine(entity.position(), approach, "yellow") > if world.rectTileCollision(rect.translate(mcontroller.boundBox(), entity.position())) then > return false > end > > coroutine.yield(nil, {burning = false}) > end > > burn(world.entityVelocity(args.entity)) > > return true, {burning = false} > end > > function approachFall(args, output, _, dt) > local flySpeed = mcontroller.baseParameters().flySpeed > while true do > local targetPosition = world.entityPosition(args.target) > local toTarget = world.distance(targetPosition, mcontroller.position()) > local airForce = mcontroller.baseParameters().airForce > if vec2.dot(toTarget, mcontroller.velocity()) < 0 and vec2.mag(toTarget) > args.dampenDistance then > airForce = airForce * args.dampenMultiplier > end > mcontroller.controlApproachVelocity(vec2.mul(vec2.norm(toTarget), flySpeed), airForce) > > local perpendicular = vec2.angle(toTarget) + math.pi / 2 > mcontroller.controlApproachVelocityAlongAngle(perpendicular, 0, args.friction, false) > coroutine.yield() > end > end scripts\actions\items.lua 11,17c11,13 < function itemIsObject(args, output) < args = parseArgs(args, { < item = "" < }) < local item = BData:getTable(args.item) < if item == nil then return false end < return root.itemType(itemName(item)) == "object" --- > function itemIsObject(args, board) > if args.item == nil then return false end > return root.itemType(itemName(args.item)) == "object" 23,29c19,20 < args = parseArgs(args, { < item = "", < tag = "" < }) < local item = BData:getTable(args.item) < if item == nil then return false end < return contains(root.itemConfig(itemName(item)).config.tags or {}, args.tag) --- > if args.item == nil then return false end > return contains(root.itemConfig(itemName(args.item)).config.tags or {}, args.tag) scripts\actions\math.lua 6,16c6,8 < function multiply(args, output) < args = parseArgs(args, { < factor = 1 < }) < < local number = BData:getNumber(args.number) < local factor = BData:getNumber(args.factor) < if number == nil or factor == nil then return false end < < BData:setNumber(output.result, number * factor) < return true --- > function multiply(args, board) > if args.number == nil or args.factor == nil then return false end > return true, {result = args.number * args.factor} 22,32c14,16 < function add(args, output) < args = parseArgs(args, { < addend = 1 < }) < < local number = BData:getNumber(args.number) < local addend = BData:getNumber(args.addend) < if number == nil or addend == nil then return false end < < BData:setNumber(output.result, number + addend) < return true --- > function add(args, board) > if args.number == nil or args.addend == nil then return false end > return true, {result = args.number + args.addend} 38,64c22,24 < function sub(args, output) < args = parseArgs(args, { < first = nil, < second = nil < }) < local first = BData:getNumber(args.first) < local second = BData:getNumber(args.second) < if first == nil or second == nil then return false end < < BData:setNumber(output.result, first - second) < return true < end < < -- param min < -- param max < -- param value < -- output number < function clamp(args, output) < args = parseArgs(args, { < min = nil, < max = nil, < value = nil < }) < < local min, max, value = BData:getNumber(args.min, args.max, args.value) < BData:setOutput(util.clamp(value, min, max)) < return true --- > function sub(args, board) > if args.first == nil or args.second == nil then return false end > return true, {result = args.first - args.second} 71,86c31,33 < function vecRotate(args, output) < args = parseArgs(args, { < vector = {1, 0}, < angle = 0, < direction = nil < }) < < local vector = BData:getVec2(args.vector) < local angle < if args.direction then < local direction = vec2.norm(BData:getVec2(args.direction)) < angle = math.atan(direction[2], direction[1]) < else < angle = BData:getNumber(args.angle) < end < if vector == nil or angle == nil then return false end --- > function vecRotate(args, board) > local angle = args.direction and vec2.angle(args.direction) or args.angle > if args.vector == nil or angle == nil then return false end 88,89c35 < BData:setVec2(output.vector, vec2.rotate(vector, angle)) < return true --- > return true, {vector = vec2.rotate(args.vector, angle)} 93a40 > -- param number --second in number type 95,105c42,45 < function vecMultiply(args, output) < args = parseArgs(args, { < first = nil, < second = nil < }) < < local first = BData:getVec2(args.first) < local second = BData:getVec2(args.second) or BData:getNumber(args.second) < if first == nil or second == nil then return false end < BData:setVec2(output.vector, vec2.mul(first, second)) < return true --- > function vecMultiply(args, board) > local second = args.second or args.number > if args.first == nil or second == nil then return false end > return true, {vector = vec2.mul(args.first, second)} 111,122c51,53 < function vecAdd(args, output) < args = parseArgs(args, { < first = nil, < second = nil < }) < < local first = BData:getVec2(args.first) < local second = BData:getVec2(args.second) < if first == nil or second == nil then return false end < < BData:setVec2(output.vector, vec2.add(first, second)) < return true --- > function vecAdd(args, board) > if args.first == nil or args.second == nil then return false end > return true, {vector = vec2.add(args.first, args.second)} 127,134c58,60 < function vecAngle(args, output) < args = parseArgs(args, { < vector = nil < }) < local vector = BData:getVec2(args.vector) < if vector == nil then return false end < BData:setNumber(output.angle, math.atan(vector[2], vector[1])) < return true --- > function vecAngle(args, board) > if args.vector == nil then return false end > return true, {angle = math.atan(args.vector[2], args.vector[1])} 140,152c66,70 < function random(args, output) < args = parseArgs(args, { < min = 0, < max = 1, < }) < < local min = BData:getNumber(args.min) < local max = BData:getNumber(args.max) < if min == nil or max == nil then return false end < < local rand = math.random() * (max - min) + min < BData:setNumber(output.number, rand) < return true --- > function random(args, board) > if args.min == nil or args.max == nil then return false end > > local rand = math.random() * (args.max - args.min) + args.min > return true, {number = rand} 156,163c74,77 < function chance(args, output) < args = parseArgs(args, { < chance = 0.5, < seed = nil, < seedMix = nil < }) < local chance = BData:getNumber(args.chance) < if chance == nil then return false end --- > -- param seed > -- param seedMix > function chance(args, board) > if args.chance == nil then return false end 167c81 < return sb.staticRandomDouble(seed, args.seedMix) < chance --- > return sb.staticRandomDouble(seed, args.seedMix) < args.chance 170c84 < return sb.makeRandomSource(seed):randd() < chance --- > return sb.makeRandomSource(seed):randd() < args.chance 172c86 < return math.random() < chance --- > return math.random() < args.chance 181,190c95,96 < function lerp(args, output) < args = parseArgs(args, { < min = 0, < max = 1, < ratio = 0 < }) < local min, max, ratio = BData:getNumber(args.min), BData:getNumber(args.max), BData:getNumber(args.ratio) < < BData:setNumber(output.number, interp.linear(ratio, min, max)) < return true --- > function lerp(args, board) > return true, {number = interp.linear(args.ratio, args.min, args.max)} 196,202c102,103 < function ease(args, output) < args = parseArgs(args, { < ratio = nil, < func = "sin" < }) < < local ratio = BData:getNumber(args.ratio) --- > function ease(args, board) > local ratio 204c105 < BData:setNumber(output.ratio, math.sin(ratio * math.pi / 2)) --- > ratio = math.sin(ratio * math.pi / 2) 206c107 < BData:setNumber(output.ratio, math.sin(ratio * math.pi)) --- > ratio = math.sin(ratio * math.pi) 208c109 < BData:setNumber(output.ratio, math.sin(ratio * math.pi * 2 - math.pi / 2) / 2 + 0.5) --- > ratio = math.sin(ratio * math.pi * 2 - math.pi / 2) / 2 + 0.5 210c111 < return true --- > return true, {ratio = ratio} 220,227c121 < args = parseArgs(args, { < first = 1, < second = 0 < }) < < local first = BData:getNumber(args.first) < local second = BData:getNumber(args.second) < if first == nil or second == nil then return false end --- > if args.first == nil or args.second == nil then return false end 229c123 < return first > second --- > return args.first > args.second 234,241c128,129 < function gte(args, output) < args = parseArgs(args, { < first = nil, < second = nil < }) < < local first, second = BData:getNumber(args.first), BData:getNumber(args.second) < return first >= second --- > function gte(args, board) > return args.first >= args.second scripts\actions\merchant.lua 97c97 < --- > 105,108c105 < function addTradableItem(args, output) < args = parseArgs(args, { < item = nil < }) --- > function addTradableItem(args, board) 110,113c107,109 < local itemDescriptor = BData:getTable(args.item) < if not itemDescriptor then return false end < if type(itemDescriptor) == "string" then < itemDescriptor = { name = itemDescriptor } --- > if not args.item then return false end > if type(args.item) == "string" then > args.item = { name = args.item } 118c114 < if compare(item, itemDescriptor) then --- > if compare(item, args.item) then 122c118 < table.insert(storage.extraMerchantItems, itemDescriptor) --- > table.insert(storage.extraMerchantItems, args.item) 155,157c151 < function enableTrading(args, output) < args = parseArgs(args, {}) < --- > function enableTrading(args, board) scripts\actions\monster.lua 2,5c2 < function setForceRegionActive(args, output) < args = parseArgs(args, { < name = nil < }) --- > function setForceRegionActive(args, board) 13,16c10 < function setDamageSourceActive(args, output) < args = parseArgs(args, { < name = nil < }) --- > function setDamageSourceActive(args, board) 23,26c17,21 < function setDamageBar(args, output) < args = parseArgs(args, { < type = "Default" < }) --- > -- param name > function setDamagePartActive(args, board) > table.insert(self.damageParts, args.name) > return true > end 27a23 > function setDamageBar(args, board) 33,40c29,30 < function battleMusic(args, output) < args = parseArgs(args, { < enable = true < }) < < local enable = BData:getBool(args.enable) < < if self.musicEnabled ~= enable then --- > function battleMusic(args, board) > if self.musicEnabled ~= args.enable then 50,54c40,41 < world.callScriptedEntity(entityId, "setMusicEnabled", enable) < self.musicEnabled = enable < else < -- Return true to allow spawning of this monster without the stagehand for < -- debugging. --- > world.callScriptedEntity(entityId, "setMusicEnabled", args.enable) > self.musicEnabled = args.enable 63,67c50 < function setActiveSkillName(args, output, _, dt) < args = parseArgs(args, { < skillName = "" < }) < --- > function setActiveSkillName(args, board, _, dt) 75c58 < function rotate(args, output, _, dt) --- > function rotate(args, board, _, dt) 78,79c61 < vector = nil, < a = 0 --- > vector = nil 85,91c67 < if args.vector then < local vector = vec2.norm(BData:getVec2(args.vector)) < if vector == nil then return false end < goalAngle = math.atan(vector[2], vector[1]) < else < goalAngle = BData:getNumber(args.angle) < end --- > goalAngle = args.vector and vec2.angle(args.vector) or args.angle 116,121c92 < function rotateBody(args, output) < args = parseArgs(args, { < angle = nil, < transformationGroup = nil < }) < --- > function rotateBody(args, board) 124c95 < self.rotation = BData:getNumber(args.angle) --- > self.rotation = args.angle 131c102 < end \ No newline at end of file --- > end scripts\actions\movement.lua 5,38d4 < function movement() < if self.moving then < if self.move and coroutine.status(self.move) ~= "dead" then < local status, result = coroutine.resume(self.move) < if status then < self.moveResult = result < else < error(string.format("Movement error: %s", result)) < end < end < else < self.move = nil < end < end < < function setMovementCoroutine(cor) < self.move = cor < self.moving = true < movement() < end < < -- < -- < < function getDirection(direction) < if direction == "facing" then < return mcontroller.facingDirection() < elseif direction == "back" then < return -mcontroller.facingDirection() < else < return BData:getNumber(direction) < end < end < 43c9 < npc.setAimPosition(vec2.add(mcontroller.position(), {direction * 5, -5})) --- > npc.setAimPosition(vec2.add(mcontroller.position(), {direction * 4, -4})) 55a22,25 > --------------------------------- > -- ACTIONS > --------------------------------- > 57a28 > -- param offset 61,66c32,33 < function entityDirection(args, output) < args = parseArgs(args, { < entity = "self", < target = "entity", < offset = {0,0} < }) --- > function entityDirection(args, board) > if args.entity == nil or not world.entityExists(args.entity) or args.target == nil or not world.entityExists(args.target) then return false end 68,77c35,36 < local entityId = BData:getEntity(args.entity) < local targetId = BData:getEntity(args.target) < local offset = BData:getVec2(args.offset) < if entityId == nil or not world.entityExists(entityId) or targetId == nil or not world.entityExists(targetId) then return false end < < local toTarget = world.distance(world.entityPosition(targetId), vec2.add(world.entityPosition(entityId), offset)) < BData:setVec2(output.vector, toTarget); < BData:setNumber(output.direction, util.toDirection(toTarget[1])) < BData:setNumber(output.yDirection, util.toDirection(toTarget[2])) < return true --- > local toTarget = world.distance(world.entityPosition(args.target), vec2.add(world.entityPosition(args.entity), args.offset)) > return true, {vector = toTarget, direction = util.toDirection(toTarget[1]), yDirection = util.toDirection(toTarget[2])} 85,90c44,46 < function entityAngle(args, output) < args = parseArgs(args, { < position = "self", < entity = "", < heading = 0 < }) --- > -- output direction > function entityAngle(args, board) > if args.position == nil or args.entity == nil then return false end 92,98c48,49 < local position = BData:getPosition(args.position) < local entityId = BData:getEntity(args.entity) < if position == nil or entityId == nil then return false end < < local heading = BData:getNumber(args.heading) < local toEntity = world.distance(world.entityPosition(entityId), position) < toEntity = vec2.norm(vec2.rotate(toEntity, -heading)) --- > local toEntity = world.distance(world.entityPosition(args.entity), args.position) > toEntity = vec2.norm(vec2.rotate(toEntity, -args.heading)) 100,102c51 < BData:setNumber(output.angle, math.atan(toEntity[2], math.abs(toEntity[1]))) < BData:setNumber(output.direction, toEntity[1]) < return true --- > return true, {angle = math.atan(toEntity[2], math.abs(toEntity[1])), direction = toEntity[1]} 107,112c56 < function move(args, output, node) < args = parseArgs(args, { < direction = 1, < run = false < }) < --- > function move(args, board, node) 114d57 < local collisionPoly = mcontroller.collisionPoly() 116,136c59,75 < local moveFunc = coroutine.create(function() < local moved = false < while true do < local run = args.run < if config.getParameter("pathing.forceWalkingBackwards", false) then < if run == true then run = mcontroller.movingDirection() == mcontroller.facingDirection() end < end < < local direction = BData:getNumber(args.direction) < if direction == nil then return false end < local position = mcontroller.position() < position = {position[1], math.ceil(position[2]) - (bounds[2] % 1)} -- align bottom of the bound box with the ground < < local move = false < -- Check for walls < for _,yDir in pairs({0, -1, 1}) do < --util.debugRect(rect.translate(bounds, vec2.add(position, {direction * 0.2, yDir})), "yellow") < if not world.rectTileCollision(rect.translate(bounds, vec2.add(position, {direction * 0.2, yDir}))) then < move = true < break < end --- > while true do > local run = args.run > if config.getParameter("pathing.forceWalkingBackwards", false) then > if run == true then run = mcontroller.movingDirection() == mcontroller.facingDirection() end > end > > if args.direction == nil then return false end > local position = mcontroller.position() > position = {position[1], math.ceil(position[2]) - (bounds[2] % 1)} -- align bottom of the bound box with the ground > > local move = false > -- Check for walls > for _,yDir in pairs({0, -1, 1}) do > --util.debugRect(rect.translate(bounds, vec2.add(position, {direction * 0.2, yDir})), "yellow") > if not world.rectTileCollision(rect.translate(bounds, vec2.add(position, {args.direction * 0.2, yDir}))) then > move = true > break 137a77 > end 139,147c79,97 < -- Also specifically check for a dumb collision geometry edge case where the ground goes like: < -- < -- # < -- ###### ###### < -- ############# < local boundsEnd = direction > 0 and bounds[3] or bounds[1] < local wallPoint = {position[1] + boundsEnd + direction * 0.5, position[2] + bounds[2] + 0.5} < local groundPoint = {position[1] + boundsEnd - direction * 0.5, position[2] + bounds[2] - 0.5} < if world.pointTileCollision(wallPoint) and not world.pointTileCollision(groundPoint) then --- > -- Also specifically check for a dumb collision geometry edge case where the ground goes like: > -- > -- # > -- ###### ###### > -- ############# > local boundsEnd = args.direction > 0 and bounds[3] or bounds[1] > local wallPoint = {position[1] + boundsEnd + args.direction * 0.5, position[2] + bounds[2] + 0.5} > local groundPoint = {position[1] + boundsEnd - args.direction * 0.5, position[2] + bounds[2] - 0.5} > if world.pointTileCollision(wallPoint) and not world.pointTileCollision(groundPoint) then > move = false > end > > -- Check for ground for the entire length of the bound box > -- Makes it so the entity can stop before a ledge > if move then > local boundWidth = bounds[3] - bounds[1] > local groundRect = rect.translate({bounds[1], bounds[2] - 1.0, bounds[3], bounds[2]}, position) > local y = 0 > for x = boundWidth % 1, math.ceil(boundWidth) do 149,165c99,104 < end < < -- Check for ground for the entire length of the bound box < -- Makes it so the entity can stop before a ledge < if move then < local boundWidth = bounds[3] - bounds[1] < local groundRect = rect.translate({bounds[1], bounds[2] - 1.0, bounds[3], bounds[2]}, position) < local y = 0 < for x = boundWidth % 1, math.ceil(boundWidth) do < move = false < for _,yDir in pairs({0, -1, 1}) do < --util.debugRect(rect.translate(groundRect, {direction * x, y + yDir}), "blue") < if world.rectTileCollision(rect.translate(groundRect, {direction * x, y + yDir}), {"Null", "Block", "Dynamic", "Platform"}) then < move = true < y = y + yDir < break < end --- > for _,yDir in pairs({0, -1, 1}) do > --util.debugRect(rect.translate(groundRect, {direction * x, y + yDir}), "blue") > if world.rectTileCollision(rect.translate(groundRect, {args.direction * x, y + yDir}), {"Null", "Block", "Dynamic", "Platform"}) then > move = true > y = y + yDir > break 167d105 < if move == false then break end 168a107 > if move == false then break end 170,182d108 < < if move then < moved = true < mcontroller.controlMove(direction, args.run) < if not self.setFacingDirection then controlFace(direction) end < else < if moved then < mcontroller.setXVelocity(0) < mcontroller.clearControls() < end < return false < end < coroutine.yield() 184d109 < end) 186,190c111,114 < setMovementCoroutine(moveFunc) < while true do < self.moving = true < if self.move == moveFunc then < coroutine.yield(self.moveResult) --- > if move then > moved = true > mcontroller.controlMove(args.direction, run) > if not self.setFacingDirection then controlFace(args.direction) end 191a116,119 > if moved then > mcontroller.setXVelocity(0) > mcontroller.clearControls() > end 193a122 > coroutine.yield() 198,204c127,128 < function canMove(args, output) < args = parseArgs(args, { < direction = "facingDirection" < }) < < local direction = BData:getNumber(args.direction) < if direction == nil then return false end --- > function canMove(args, board) > if args.direction == nil then return false end 206,207c130,131 < local position = vec2.add(mcontroller.position(), {direction, 0}) < if direction > 0 then --- > local position = vec2.add(mcontroller.position(), {args.direction, 0}) > if args.direction > 0 then 212c136 < local groundPosition = findGroundPosition(position, -1, 1, true, {"Null", "Block", "Dynamic"}) --- > local groundPosition = findGroundPosition(position, -1, 1, true, {"Null", "Block", "Dynamic", "Slippery"}) 221c145 < function isMoving(args, output) --- > function isMoving(args, board) 227,232c151,152 < function controlMove(args, output) < args = parseArgs(args, { < direction = "direction", < run = false < }) < --- > function controlMove(args, board) > local run = args.run 234c154 < if args.run == true then args.run = mcontroller.movingDirection() == mcontroller.facingDirection() end --- > if run == true then run = mcontroller.movingDirection() == mcontroller.facingDirection() end 237,238c157 < local direction = BData:getNumber(args.direction) < if direction == nil then return false end --- > if args.direction == nil then return false end 240c159 < mcontroller.controlMove(direction, args.run) --- > mcontroller.controlMove(args.direction, run) 244,245c163 < function controlDown(args, output) < args = parseArgs(args, {}) --- > function controlDown(args, board) 250,251c168 < function controlCrouch(args, output) < args = parseArgs(args, {}) --- > function controlCrouch(args, board) 256,257c173 < function controlJump(args, output) < args = parseArgs(args, {}) --- > function controlJump(args, board) 265,269c181,182 < function setDirection(args, output) < args = parseArgs(args, { < direction = util.randomDirection(), < }) < local direction = BData:getNumber(args.direction) --- > function setDirection(args, board) > local direction = args.direction or util.randomDirection() 272,273c185 < BData:setNumber(output.direction, util.toDirection(direction)) < return true --- > return true, {direction = util.toDirection(direction)} 278,287c190,192 < function reverseDirection(args, output) < args = parseArgs(args, { < direction = "direction" < }) < < local direction = BData:getNumber(args.direction) < if direction == nil then return false end < < BData:setNumber(output.direction, -direction) < return true --- > function reverseDirection(args, board) > if args.direction == nil then return false end > return true, {direction = -args.direction} 291a197 > -- param runSpeed 298,309c204,205 < function moveToPosition(args, output, node) < args = parseArgs(args, { < position = "target", < run = false, < runSpeed = nil, < groundPosition = true, < minGround = -5, < maxGround = 5, < avoidLiquid = true, < pathOptions = {} < }) < --- > function moveToPosition(args, board, node) > if args.position == nil then return false end 312,344c208,225 < local options = { < run = BData:getBool(args.run), < pathOptions = args.pathOptions, < movementParameters = {runSpeed = BData:getNumber(args.runSpeed)} < } < < -- local variables for communicating between movement function and action node < local pather = PathMover:new(options) < local moveDirection = 0 < local targetPosition = false < local pathfinding = false < local newPosition = BData:getPosition(args.position) < local avoidLiquid = BData:getBool(args, avoidLiquid) < < local moveFunc = coroutine.create(function() < while true do < mcontroller.clearControls() < if newPosition then < targetPosition = newPosition < newPosition = false < if args.groundPosition then < targetPosition = findGroundPosition(targetPosition, args.minGround, args.maxGround, avoidLiquid) < elseif avoidLiquid then < local liquid = world.liquidAt(rect.translate(mcontroller.boundBox(), targetPosition)) < if liquid and liquid[2] > 0.1 then < targetPosition = nil < end < end < end < if not targetPosition then return false end < world.debugLine(mcontroller.position(), targetPosition, "yellow") < < local moved = pather:move(targetPosition, script.updateDt()) --- > local pathOptions = applyDefaults(args.pathOptions or {}, { > returnBest = false, > mustEndOnGround = mcontroller.baseParameters().gravityEnabled, > maxDistance = 200, > swimCost = 5, > dropCost = 5, > boundBox = mcontroller.boundBox(), > droppingBoundBox = rect.pad(mcontroller.boundBox(), {0.2, 0}), --Wider bound box for dropping > standingBoundBox = rect.pad(mcontroller.boundBox(), {-0.7, 0}), --Thinner bound box for standing and landing > smallJumpMultiplier = 1 / math.sqrt(2), -- 0.5 multiplier to jump height > jumpDropXMultiplier = 1, > enableWalkSpeedJumps = true, > enableVerticalJumpAirControl = false, > maxFScore = 400, > maxNodesToSearch = 70000, > maxLandingVelocity = -10.0, > liquidJumpCost = 15 > }) 346,348d226 < moveDirection = pather.deltaX < pathfinding = moved == "pathfinding" or moved == false < if not self.setFacingDirection and moveDirection ~= 0 then controlFace(moveDirection) end 350,354c228,236 < if moved == true or moved == false then < mcontroller.clearControls() < return moved < end < coroutine.yield() --- > local lastPosition = false > local targetPosition = {args.position[1], args.position[2]} > > local updateTarget = function() > lastPosition = {args.position[1], args.position[2]} > if args.groundPosition then > targetPosition = findGroundPosition(lastPosition, args.minGround, args.maxGround, args.avoidLiquid) > else > targetPosition = lastPosition 356c238 < end) --- > end 358c240,245 < setMovementCoroutine(moveFunc) --- > updateTarget() > if not targetPosition then > return false > end > local result > mcontroller.startPathMove(targetPosition, pathOptions) 360,368c247,250 < self.moving = true < if self.move == moveFunc then < if self.moveResult ~= true and self.moveResult ~= false then < newPosition = BData:getPosition(args.position) < if newPosition[1] == targetPosition[1] and newPosition[2] == targetPosition[2] then < newPosition = false < end < avoidLiquid = BData:getBool(args.avoidLiquid) < pather.options.run = BData:getBool(args.run) --- > if not lastPosition or world.magnitude(args.position, lastPosition) > 2 then > updateTarget() > if not targetPosition then > return false 369a252 > end 371,375c254,263 < BData:setNumber(output.direction, util.toDirection(moveDirection)) < BData:set("bool", output.pathfinding, pathfinding) < coroutine.yield(self.moveResult) < else < return false --- > local result = mcontroller.pathMoveResult() > if result == false or result == true then > return result > end > mcontroller.controlPathMove(targetPosition, args.run) > if not self.setFacingDirection then controlFace(mcontroller.movingDirection()) end > > openDoorsAhead() > if args.closeDoors then > closeDoorsBehind() 376a265,266 > > coroutine.yield(nil, {pathfinding = mcontroller.pathfinding(), direction = mcontroller.facingDirection()}) 378d267 < end 379a269,270 > return true > end 383,395c274,275 < function setVelocity(args, output) < args = parseArgs(args, { < velocity = {0,0}, < x = nil, < y = nil < }) < < local velocity < if args.x and args.y then < velocity = {BData:getNumber(args.x), BData:getNumber(args.y)} < else < velocity = BData:getVec2(args.velocity) < end --- > function setVelocity(args, board) > local velocity = (args.x and args.y) and {args.x, args.y} or args.velocity 405,407c285 < function velocity(args, output) < args = parseArgs(args, {}) < --- > function velocity(args, board) 409,413c287 < BData:setVec2(output.velocity, velocity) < BData:setNumber(output.x, velocity[1]) < BData:setNumber(output.y, velocity[2]) < < return true --- > return true, {velocity = velocity, x = velocity[1], y = velocity[2]} 418,428c292,294 < function controlApproachVelocity(args, output) < args = parseArgs(args, { < velocity = {0,0}, < force = 500 < }) < < local velocity = BData:getVec2(args.velocity) < local force = BData:getNumber(args.force) < if velocity == nil or force == nil then return false end < < mcontroller.controlApproachVelocity(velocity, force) --- > function controlApproachVelocity(args, board) > if args.velocity == nil or args.force == nil then return false end > mcontroller.controlApproachVelocity(args.velocity, args.force) 435,447c301,303 < function controlApproachVelocityAlongAngle(args, output) < args = parseArgs(args, { < angle = 0, < velocity = 0, < force = 500 < }) < < local angle = BData:getNumber(args.angle) < local velocity = BData:getNumber(args.velocity) < local force = BData:getNumber(args.force) < if velocity == nil or force == nil or angle == nil then return false end < < mcontroller.controlApproachVelocityAlongAngle(angle, velocity, force) --- > function controlApproachVelocityAlongAngle(args, board) > if args.velocity == nil or args.force == nil or args.angle == nil then return false end > mcontroller.controlApproachVelocityAlongAngle(args.angle, args.velocity, args.force) 453,457c309,310 < function controlApproachXVelocity(args, output) < args = parseArgs(args, { < velocity = 0, < force = 500 < }) --- > function controlApproachXVelocity(args, board) > if args.velocity == nil or args.force == nil then return false end 459,463c312 < local velocity = BData:getNumber(args.velocity) < local force = BData:getNumber(args.force) < if velocity == nil or force == nil then return false end < < mcontroller.controlApproachXVelocity(velocity, force) --- > mcontroller.controlApproachXVelocity(args.velocity, args.force) 469,477c318,320 < function faceEntity(args, output) < args = parseArgs(args, { < entity = "target", < headingDirection = {1, 0} < }) < local headingDirection = BData:getVec2(args.headingDirection) < local entityId = BData:getEntity(args.entity) < if entityId == nil or not world.entityExists(entityId) then return false end < local position = world.entityPosition(entityId) --- > function faceEntity(args, board) > if args.entity == nil or not world.entityExists(args.entity) then return false end > local position = world.entityPosition(args.entity) 480c323 < local direction = util.toDirection(vec2.dot(vec2.norm(toEntity), headingDirection)) --- > local direction = util.toDirection(vec2.dot(vec2.norm(toEntity), args.headingDirection)) 488,493c331,332 < function faceDirection(args, output) < args = parseArgs(args, { < direction = "direction" < }) < local direction = BData:getNumber(args.direction) < if direction == nil then return false end --- > function faceDirection(args, board) > if args.direction == nil then return false end 495c334 < controlFace(direction) --- > controlFace(args.direction) 505,511c344,345 < function inLiquid(args, output) < args = parseArgs(args, { < percentage = "percentage" < }) < local percentage = BData:getNumber(args.percentage) or 1.0 < < return mcontroller.liquidPercentage() >= percentage --- > function inLiquid(args, board) > return mcontroller.liquidPercentage() >= (args.percentage or 1.0) 517c351 < function flyToPosition(args, output) --- > function flyToPosition(args, board) 520,521c354 < tolerance = 1, < speed = mcontroller.baseParameters().flySpeed --- > tolerance = 1 525,526c358,359 < local position = BData:getPosition(args.position) < if not position then return false end --- > if not args.position then return false end > local speed = args.speed or mcontroller.baseParameters().flySpeed 528c361 < local distance = world.magnitude(position, mcontroller.position()) --- > local distance = world.magnitude(args.position, mcontroller.position()) 531,534c364 < mcontroller.controlDown() < local toTarget = vec2.norm(world.distance(position, mcontroller.position())) < BData:setVec2(output.vector, toTarget) < local speed = BData:getNumber(args.speed) --- > local toTarget = vec2.norm(world.distance(args.position, mcontroller.position())) 537,539c367,369 < distance = world.magnitude(position, mcontroller.position()) < util.debugLine(mcontroller.position(), position, "yellow") < coroutine.yield("running") --- > mcontroller.controlDown() > > coroutine.yield(nil, {vector = toTarget}) 549,563c379,381 < -- param speed < function controlFly(args, output) < args = parseArgs(args, { < vector = {0,0}, < speed = mcontroller.baseParameters().flySpeed < }) < < local direction < if args.x and args.y then < direction = vec2.norm({BData:getNumber(args.x), BData:getNumber(args.y)}) < else < direction = BData:getVec2(args.vector) < end < < mcontroller.controlFly(vec2.mul(direction, args.speed)) --- > function controlFly(args, board) > local v = {args.x or args.vector[1] or 0, args.y or args.vector[2] or 0} > mcontroller.controlFly(v) 567,570c385 < function clearControls(args, output) < args = parseArgs(args, { < }) < --- > function clearControls(args, board) 576,579c391,394 < function controlParameters(args, output) < args = parseArgs(args, { < parameters = {} < }) --- > -- param gravityMultiplier > -- This is glaringly incomplete, could use an argument for every control parameter > function controlParameters(args, board) > args.parameters.gravityMultiplier = args.gravityMultiplier 581,584c396 < local parameters = copy(args.parameters) < parameters.gravityMultiplier = BData:getNumber(args.parameters.gravityMultiplier) < < mcontroller.controlParameters(parameters) --- > mcontroller.controlParameters(args.parameters) 589,593c401 < function controlModifiers(args, output) < args = parseArgs(args, { < modifiers = {} < }) < --- > function controlModifiers(args, board) 606,616c414,415 < function openDoors(args, output) < args = parseArgs(args, { < direction = "facing", --Default to opening doors in front < distance = 1.5, < openLocked = false < }) < local openLocked = BData:getBool(args.openLocked) < local direction = getDirection(args.direction) < local distance = BData:getNumber(args.distance) < local position = mcontroller.position() < local opened = true --- > function openDoors(args, board) > local direction = args.direction or mcontroller.facingDirection() --Default to opening doors in front 617a417 > local position = mcontroller.position() 618a419 > local opened = true 621c422 < bounds[3] = bounds[3] + distance --- > bounds[3] = bounds[3] + args.distance 624c425 < bounds[1] = bounds[1] - distance --- > bounds[1] = bounds[1] - args.distance 628d428 < -- There is a colliding object in the way. See if we can open it 629a430 > -- There is a colliding object in the way. See if we can open it 632c433 < if openLocked then --- > if args.openLocked then 652,659c453 < args = parseArgs(args, { < direction = "back", --Default to opening doors behind < distance = 2.0 < }) < local direction = getDirection(args.direction) < local distance = BData:getNumber(args.distance) < local position = mcontroller.position() < local closed = true --- > local direction = args.direction or -mcontroller.facingDirection() --Default to closing doors behind 660a455 > local position = mcontroller.position() 661a457 > local closed = true 664c460 < bounds[3] = bounds[3] + distance --- > bounds[3] = bounds[3] + args.distance 667c463 < bounds[1] = bounds[1] - distance --- > bounds[1] = bounds[1] - args.distance 691,698c487,488 < function findOuterDoor(args, output, _, dt) < args = parseArgs(args, { < position = "self", < range = 20 < }) < < local position = BData:getPosition(args.position) < local doorIds = world.entityQuery(position, args.range, { --- > function findOuterDoor(args, board, _, dt) > local doorIds = world.entityQuery(args.position, args.range, { 724,726c514 < BData:setPosition(output.insidePosition, inside) < BData:setPosition(output.outsidePosition, outside) < return true --- > return true, {insidePosition = inside, outsidePosition = outside} 737,743c525,527 < function setPosition(args, output) < args = parseArgs(args, { < position = "self", < x = nil, < y = nil, < footPosition = false < }) --- > function setPosition(args, board) > local position = (args.x and args.y) and {args.x, args.y} or {args.position[1], args.position[2]} > position = position or mcontroller.position() 745,749c529,530 < local position = BData:getPosition(args.position) < local x = BData:getNumber(args.x) < local y = BData:getNumber(args.y) < if position == nil and x == nil and y == nil then < return false --- > if args.footPosition then > position[2] = position[2] - mcontroller.boundBox()[2] 751,759c532 < if position == nil then < position = mcontroller.position() < end < if x == nil then x = position[1] end < if y == nil then y = position[2] end < if BData:getBool(args.footPosition) then < y = y - mcontroller.boundBox()[2] < end < mcontroller.setPosition({x, y}) --- > mcontroller.setPosition(position) 764d536 < args = parseArgs(args, {}) 770,771c542 < function boundBox(args, output) < args = parseArgs(args, {}) --- > function boundBox(args, board) 773,776c544 < < BData:setVec2(output.min, {bounds[1], bounds[2]}) < BData:setVec2(output.max, {bounds[3], bounds[4]}) < return true --- > return true, {min = {bounds[1], bounds[2]}, max = {bounds[4], bounds[4]}} scripts\actions\notification.lua 1,5c1,2 < function receivedNotification(args, output) < args = parseArgs(args, { < type = nil < }) < --- > -- param type > function receivedNotification(args, board) 10,12d6 < if notification.sourceId then BData:setEntity(output.source, notification.sourceId) end < if notification.targetId then BData:setEntity(output.target, notification.targetId) end < if notification.targetPosition then BData:setPosition(output.targetPosition, notification.targetPosition) end 14c8 < return true --- > return true, {source = notification.sourceId, target = notification.targetId, targetPosition = notification.targetPosition} 20,29c14,18 < function sendNotification(args, output) < args = parseArgs(args, { < type = nil, < entity = nil, < target = nil < }) < < local entityId = BData:getEntity(args.entity) < local targetId = BData:getEntity(args.target) < if entityId == nil or args.type == nil then return false end --- > -- param type > -- param entity > -- param target > function sendNotification(args, board) > if args.entity == nil or args.type == nil then return false end 33c22 < targetId = targetId, --- > targetId = args.target, 36c25 < world.callScriptedEntity(entityId, "notify", notification) --- > world.callScriptedEntity(args.entity, "notify", notification) 40,52c29,35 < function broadcastNotification(args, output) < args = parseArgs(args, { < type = nil, < position = "self", < range = 20, < entityTypes = {"monster", "npc"}, < target = nil < }) < < local position = BData:getPosition("self") < local range = BData:getNumber(args.range) < local targetId = BData:getEntity(args.target) < if args.type == nil or position == nil or range == nil then return false end --- > -- param type > -- param position > -- param range > -- param entityTypes > -- param target > function broadcastNotification(args, board) > if args.type == nil or args.position == nil or args.range == nil then return false end 56c39 < targetId = targetId, --- > targetId = args.target, 59c42 < local notified = world.entityQuery(position, range, { includedTypes = args.entityTypes, callScript = "notify", callScriptArgs = {notification} }) --- > local notified = world.entityQuery(args.position, args.range, { includedTypes = args.entityTypes, callScript = "notify", callScriptArgs = {notification} }) scripts\actions\npc.lua 1,2c1 < function randomizeStatusText(args, output) < args = parseArgs(args, {}) --- > function randomizeStatusText(args, board) 16,24c15,17 < function setLounging(args, output) < args = parseArgs(args, { < entity = "loungable" < }) < < local entityId = BData:getEntity(args.entity) < if entityId == nil then return false end < < npc.setLounging(entityId) --- > function setLounging(args, board) > if args.entity == nil then return false end > npc.setLounging(args.entity) 29,37c22,25 < function lounge(args, output) < args = parseArgs(args, { < entity = nil < }) < < local entityId = BData:getEntity(args.entity) < if entityId == nil then return false end < if not npc.isLounging() or npc.loungingIn() ~= entityId then < npc.setLounging(entityId) --- > function lounge(args, board) > if args.entity == nil then return false end > if not npc.isLounging() or npc.loungingIn() ~= args.entity then > npc.setLounging(args.entity) 43c31 < function resetLounging(args, output) --- > function resetLounging(args, board) 53,59c41 < function setItemSlot(args, output) < args = parseArgs(args, { < slot = "primary", < itemName = "uncommonrocketlauncher", < level = nil < }) < --- > function setItemSlot(args, board) 77,85c59,61 < args = parseArgs(args, { < itemTable = "", < vanitySlot = false < }) < < local item = BData:getTable(args.itemTable) < local itemName = nil < if type(item) == "table" then < itemName = item.name --- > local itemName > if type(args.item) == "table" then > itemName = args.item.name 87c63 < itemName = item --- > itemName = args.item 110c86 < npc.setItemSlot(slot, item) --- > npc.setItemSlot(slot, args.item) 112c88 < storage.itemSlots[string.lower(slot)] = item --- > storage.itemSlots[string.lower(slot)] = args.item 118,126c94,95 < function setAimPosition(args, output) < args = parseArgs(args, { < position = "self", < offset = {0,0} < }) < < local position = BData:getPosition(args.position) < local offset = BData:getVec2(args.offset) < if position == nil or offset == nil then return false end --- > function setAimPosition(args, board) > if args.position == nil or args.offset == nil then return false end 128c97 < position = vec2.add(position, offset) --- > local position = vec2.add(args.position, args.offset) 132c101 < --- > 137c106 < function altFire(args, output) --- > function altFire(args, board) 142c111 < function primaryFire(args, output) --- > function primaryFire(args, board) 147c116 < function endPrimaryFire(args, output) --- > function endPrimaryFire(args, board) 153,156c122 < function setDropPools(args, output) < args = parseArgs(args, { < dropPools = {} < }) --- > function setDropPools(args, board) 161,164c127,128 < function setDeathParticleBurst(args, output) < args = parseArgs(args, { < deathParticleBurst = nil < }) --- > -- param deathParticleBurst > function setDeathParticleBurst(args, board) 169,172c133,134 < function emote(args, output) < args = parseArgs(args, { < emote = nil < }) --- > -- param emote > function emote(args, board) 174d135 < 179,182c140,141 < function dance(args, output) < args = parseArgs(args, { < dance = nil < }) --- > -- param dance > function dance(args, board) 191c150 < function swapItemSlots(args, output) --- > function swapItemSlots(args, board) 204c163 < function hasMeleePrimary(args, output) --- > function hasMeleePrimary(args, board) 209c168 < function hasRangedPrimary(args, output) --- > function hasRangedPrimary(args, board) 214c173 < function hasShield(args, output) --- > function hasShield(args, board) 219c178 < function hasMeleeSheathed(args, output) --- > function hasMeleeSheathed(args, board) 224c183 < function hasRangedSheathed(args, output) --- > function hasRangedSheathed(args, board) 229c188 < function hasShieldSheathed(args, output) --- > function hasShieldSheathed(args, board) 234c193 < function canFire(args, output) --- > function canFire(args, board) 261,263d219 < args = parseArgs(args, { < }) < 265,268c221 < < BData:setNumber(output.windup, timing.windup) < BData:setNumber(output.cooldown, timing.cooldown) < return true --- > return true, {windup = timing.windup, cooldown = timing.cooldown} 272,275c225 < function primaryWeaponTag(args, output) < args = parseArgs(args, { < tag = nil < }) --- > function primaryWeaponTag(args, board) 284,286c234 < function damageTeam(args, output) < args = parseArgs(args, {}) < --- > function damageTeam(args, board) 288,289c236 < BData:setNumber(output.damageTeam, team.team) < return true --- > return true, {damageTeam = team.team} 292,306c239,245 < < function friendlyTargeting(args, output, nodeId, dt) < args = parseArgs(args, { < queryRange = 50, < trackingRange = 50, < losTime = 8, < broadcastInterval = 2.0, < attackOnSight = {}, < hostileDamageTeam = { type = "enemy", team = 1 } < }) < < local queryRange, trackingRange = BData:getNumber(args.queryRange), BData:getNumber(args.trackingRange) < local losTime, broadcastInterval = BData:getNumber(args.losTime), BData:getNumber(args.broadcastInterval) < local attackOnSight = BData:getList(args.attackOnSight) < --- > -- param queryRange > -- param trackingRange > -- param losTime > -- param broadcastInterval > -- param attackOnSight > -- param hostileDamageTeam > function friendlyTargeting(args, board, nodeId, dt) 308a248 > local attackOnSight = args.attackOnSight or {} 311c251 < local cooldown = BData:getNumber("queryCooldown-"..nodeId) or 0 --- > local cooldown = board:getNumber("queryCooldown-"..nodeId) or 0 313c253 < local queried = world.entityQuery(entity.position(), queryRange, {includedTypes = {"monster", "npc", "player"}, order = "nearest", withoutEntityId = entity.id()}) --- > local queried = world.entityQuery(entity.position(), args.queryRange, {includedTypes = {"monster", "npc", "player"}, order = "nearest", withoutEntityId = entity.id()}) 315c255 < BData:setNumber("queryCooldown-"..nodeId, world.time()) --- > board:setNumber("queryCooldown-"..nodeId, world.time()) 325c265 < if world.magnitude(entity.position(), world.entityPosition(entityId)) > trackingRange then --- > if world.magnitude(entity.position(), world.entityPosition(entityId)) > args.trackingRange then 330c270 < outOfSight[entityId] = 8 --- > outOfSight[entityId] = args.losTime 338c278 < if world.magnitude(entity.position(), world.entityPosition(entityId)) > trackingRange --- > if world.magnitude(entity.position(), world.entityPosition(entityId)) > args.trackingRange 358a299 > table.insert(attackOnSight, entityId) 370c311 < world.entityQuery(entity.position(), trackingRange, { includedTypes = {"npc"}, callScript = "notify", callScriptArgs = {notification} }) --- > world.entityQuery(entity.position(), args.trackingRange, { includedTypes = {"npc"}, callScript = "notify", callScriptArgs = {notification} }) 372c313 < local periodicBroadcast = util.interval(broadcastInterval, function() --- > local periodicBroadcast = util.interval(args.broadcastInterval, function() 379,380d319 < attackOnSight = BData:getList(args.attackOnSight) < 415c354 < local damageSource = BData:getEntity("damageSource") --- > local damageSource = board:getEntity("damageSource") 430d368 < BData:setEntity(output.target, targets[1] or outOfSight[1]) 432c370 < --- > 434c372,373 < dt = coroutine.yield() --- > dt = coroutine.yield(nil, {target = targets[1] or outOfSight[1], attackOnSight = attackOnSight}) > attackOnSight = args.attackOnSight or {} 436c375 < end \ No newline at end of file --- > end scripts\actions\overrides.lua 2a3,5 > -- Stores behavior trees for this context so they don't need to be rebuilt every time > OverridesTreeCache = {} > 47,50c50 < function matchingOverrides(args, output) < args = parseArgs(args, { < overrideName = "" < }) --- > function matchingOverrides(args, board) 61,62c61 < BData:setList(output.list, list) < return true --- > return true, {list = list} 69,74c68 < args = parseArgs(args, { < override = "", < argumentName = "target" < }) < local override = BData:getTable(args.override) < if not override then return false end --- > if not args.override then return false end 76c70 < local uniqueId = override[args.argumentName] --- > local uniqueId = args.override[args.argumentName] 81,82c75 < BData:setEntity(output.entity, entityId) < return true --- > return true, {entity = entityId} 88,103c81,84 < function overrideBehavior(args, output) < args = parseArgs(args, { < override = "", < argumentName = "behavior" < }) < local override = BData:getTable(args.override) < if not override then return false end < < BData:setTable(output.behavior, override[args.argumentName]) < return true < end < < function playBehavior(args, output, nodeId, dt) < args = parseArgs(args, { < behavior = nil < }) --- > function overrideBehavior(args, board) > if not args.override then return false end > return true, {behavior = args.override[args.argumentName]} > end 105,106c86,87 < local behavior = BData:getTable(args.behavior) < if not behavior then return false end --- > function playBehavior(args, board, nodeId, dt) > if not args.behavior then return false end 108c89,90 < local tree = BData:getTable(string.format("playBehavior-%s-%s", behavior.name, nodeId)) --- > local key = string.format("playBehavior-%s-%s", args.behavior.name, nodeId) > local tree = OverridesTreeCache[key] 110,112c92,93 < local newTree = root.behavior(behavior.name, {}) < tree = {newTree, newTree:init(_ENV)} < BData:setTable(string.format("playBehavior-%s-%s", behavior.name, nodeId), tree) --- > tree = behavior.behavior(args.behavior.name, {}, _ENV, board) > OverridesTreeCache[key] = tree 114c95 < tree[1]:clear() --- > tree:clear() 118c99 < local result = tree[1]:run(tree[2], dt) --- > local result = tree:run(tree, dt) scripts\actions\pets.lua 4,10c4,5 < function hasOwner(args, output) < args = parseArgs(args, { < owner = nil < }) < < local override = BData:getEntity(args.owner) < return (override ~= nil and world.entityExists(override)) or capturable.ownerUuid() ~= nil --- > function hasOwner(args, board) > return (args.owner ~= nil and world.entityExists(args.owner)) or capturable.ownerUuid() ~= nil 15,24c10,12 < function ownerEntity(args, output) < args = parseArgs(args, { < owner = nil < }) < < local entityId < local override = BData:getEntity(args.owner) < if override then < entityId = override < else --- > function ownerEntity(args, board) > local owner = args.owner > if args.owner == nil then 28,33c16 < entityId = world.loadUniqueEntity(uuid) < end < if not entityId or not world.entityExists(entityId) then return false end < < if output.entity then < BData:setEntity(output.entity, entityId) --- > owner = world.loadUniqueEntity(uuid) 35,36c18,19 < < return true --- > if not owner or not world.entityExists(owner) then return false end > return true, {entity = owner} 41,42d23 < args = parseArgs(args, {}) < 49,53c30 < if output.entity then < BData:setEntity(output.entity, entityId) < end < < return true --- > return true, {entity = entityId} scripts\actions\position.lua 4,15c4,6 < function offsetPosition(args, output) < args = parseArgs(args, { < position = "self", < offset = {0,0} < }) < < local offset < if args.x and args.y then < offset = {BData:getNumber(args.x), BData:getNumber(args.y)} < else < offset = BData:getVec2(args.offset) < end --- > function offsetPosition(args, board) > local position = args.position or mcontroller.position() > local offset = (args.x and args.y) and {args.x, args.y} or args.offset 17d7 < local position = BData:getPosition(args.position) 19,21c9 < < BData:setPosition(output.position, vec2.add(position, offset)) < return true --- > return true, {position = vec2.add(position, offset)} 28,43c16,19 < function offsetDirection(args, output) < args = parseArgs(args, { < multiplier = 1, < position = "self", < direction = "direction" < }) < < local position = BData:getPosition(args.position) < local direction = BData:getNumber(args.direction) < local multiplier = BData:getNumber(args.multiplier) < if position == nil then return false end < < local offset = {direction * multiplier, 0} < BData:setPosition(output.position, vec2.add(position, offset)) < < return true --- > function offsetDirection(args, board) > if args.position == nil then return false end > local offset = {args.direction * args.multiplier, 0} > return true, {position = vec2.add(args.position, offset)} 51,66c27,28 < function groundPosition(args, output) < args = parseArgs(args, { < minHeight = -5, < maxHeight = 5, < avoidLiquid = true < }) < < local position = BData:getPosition(args.position) < if position == nil then < return false < end < < position = findGroundPosition(position, args.minHeight, args.maxHeight, args.avoidLiquid) < if position == nil then < return false < end --- > function groundPosition(args, board) > if args.position == nil then return false end 68,69c30,33 < BData:setPosition(output.position, position) < return true --- > local position = findGroundPosition(args.position, args.minHeight, args.maxHeight, args.avoidLiquid) > if position == nil then return false end > > return true, {position = position} 73,80c37,38 < function isInside(args, output) < args = parseArgs(args, { < position = "self" < }) < < local position = BData:getPosition(args.position) < < local material = world.material(position, "background") --- > function isInside(args, board) > local material = world.material(args.position, "background") 90,104c48,52 < function distance(args, output) < args = parseArgs(args, { < from = "self", < }) < < local position = BData:getPosition(args.from) < local target = BData:getPosition(args.to) < if position == nil or target == nil then return false end < < local distance = world.distance(target, position) < BData:setVec2(output.vector, distance) < BData:setNumber(output.x, distance[1]) < BData:setNumber(output.y, distance[2]) < BData:setNumber(output.magnitude, world.magnitude(target, position)) < return true --- > -- output magnitude > function distance(args, board) > if args.from == nil or args.to == nil then return false end > local distance = world.distance(args.to, args.from) > return true, {vector = distance, x = distance[1], y = distance[2], magnitude = world.magnitude(args.to, args.from)} 110,123c58,61 < function inRange(args, output) < args = parseArgs(args, { < position = "self", < target = "spawn", < range = 10 < }) < < local position = BData:getPosition(args.position) < local targetPosition = BData:getPosition(args.target) < local range = BData:getNumber(args.range) < if position == nil or targetPosition == nil or range == nil then return false end < < local distance = world.magnitude(targetPosition, position) < return distance < range --- > function inRange(args, board) > if args.position == nil or args.target == nil or args.range == nil then return false end > local distance = world.magnitude(args.target, args.position) > return distance < args.range scripts\actions\projectiles.lua 2c2,5 < function parseProjectileConfig(args) --- > > -- Probably the hackiest thing in all the behavior nodes > -- All of these should be node parameters > function parseProjectileConfig(board, args) 4,7c7,18 < parsed.power = BData:getNumber(args.power) < parsed.speed = BData:getNumber(args.speed) < parsed.timeToLive = BData:getNumber(args.timeToLive) < parsed.animationCycle = BData:getNumber(args.animationCycle) --- > if parsed.power and type(parsed.power) == "string" then > parsed.power = board:getNumber(args.power) > end > if parsed.speed and type(parsed.speed) == "string" then > parsed.speed = board:getNumber(args.speed) > end > if parsed.timeToLive and type(parsed.timeToLive) == "string" then > parsed.timeToLive = board:getNumber(args.timeToLive) > end > if parsed.animationCycle and type(parsed.animationCycle) == "string" then > parsed.animationCycle = board:getNumber(args.animationCycle) > end 36,56c47,50 < function spawnProjectile(args, output) < args = parseArgs(args, { < position = "self", < offset = {0,0}, < projectileType = "bullet-4", < angle = 0, < aimVector = nil, < sourceEntity = "self", < trackSource = false, < projectileConfig = {}, < scalePower = true, < damageRepeatGroup = nil, < uniqueRepeatGroup = true < }) < < local position = BData:getPosition(args.position) < local offset = BData:getVec2(args.offset) < local sourceId = BData:getEntity(args.sourceEntity) < local uniqueRepeatGroup = BData:getBool(args.uniqueRepeatGroup) < < local parameters = parseProjectileConfig(args.projectileConfig or {}) --- > -- param damageRepeatGroup > -- param uniqueRepeatGroup > function spawnProjectile(args, board) > local parameters = parseProjectileConfig(board, args.projectileConfig or {}) 59,67c53,54 < local aimVector < if args.aimVector then < aimVector = BData:getVec2(args.aimVector) < else < local angle = BData:getNumber(args.angle) < aimVector = {math.sin(angle), math.cos(angle)} < end < < if args.damageRepeatGroup then --- > local aimVector = args.aimVector or vec2.withAngle(args.angle) > if args.damageRepeatGroup and args.damageRepeatGroup ~= "" then 69c56 < if uniqueRepeatGroup then --- > if args.uniqueRepeatGroup then 74c61 < world.spawnProjectile(args.projectileType, vec2.add(position, offset), sourceId, aimVector, args.trackSource, parameters) --- > world.spawnProjectile(args.projectileType, vec2.add(args.position, args.offset), args.sourceEntity, aimVector, args.trackSource, parameters) 78,92c65,72 < < function spawnTargetedProjectile(args, output) < args = parseArgs(args, { < position = "self", < projectileType = nil, < aimVector = {0,0}, < trackSource = false, < parameters = {}, < target = nil < }) < < local position = BData:getPosition(args.position) < local aimVector = BData:getVec2(args.aimVector) < local parameters = parseProjectileConfig(args.parameters) < local targetId = BData:getEntity(args.target) --- > -- param position > -- param projectileType > -- param aimVector > -- param trackSource > -- param parameters > -- param target > function spawnTargetedProjectile(args, board) > local parameters = copy(args.parameters) 95c75 < if not targetId or not world.entityExists(targetId) then return false end --- > if not args.target or not world.entityExists(args.target) then return false end 97,98c77,78 < local projectileId = world.spawnProjectile(args.projectileType, position, entity.id(), aimVector, args.trackSource, parameters) < world.sendEntityMessage(projectileId, "setTarget", targetId) --- > local projectileId = world.spawnProjectile(args.projectileType, args.position, entity.id(), args.aimVector, args.trackSource, parameters) > world.sendEntityMessage(projectileId, "setTarget", args.target) 104a85 > -- param gravityMultiplier 109,127c90,95 < function projectileAimVector(args, output) < args = parseArgs(args, { < fromPosition = "self", < toPosition = nil, < speed = 0, < collisionCheck = true, < gravityMultiplier = nil, < useHighArc = false < }) < < local fromPosition = BData:getPosition(args.fromPosition) < local toPosition = BData:getPosition(args.toPosition) < local speed = BData:getNumber(args.speed) < if fromPosition == nil or speed == nil or toPosition == nil then < return false < end < local gravityMultiplier = BData:getNumber(args.gravityMultiplier) or mcontroller.baseParameters().gravityMultiplier < local toTarget = world.distance(toPosition, fromPosition) < local aimVector, foundVector = util.aimVector(toTarget, speed, gravityMultiplier, args.useHighArc) --- > function projectileAimVector(args, board) > if args.fromPosition == nil or args.speed == nil or args.toPosition == nil then return false end > local gravityMultiplier = args.gravityMultiplier or mcontroller.baseParameters().gravityMultiplier > > local toTarget = world.distance(args.toPosition, args.fromPosition) > local aimVector, foundVector = util.aimVector(toTarget, args.speed, gravityMultiplier, args.useHighArc) 133c101 < local velocity = vec2.mul(aimVector, speed) --- > local velocity = vec2.mul(aimVector, args.speed) 142,143d109 < util.debugLine(startArc, step, "red") < util.debugPoly(poly.translate(mcontroller.collisionPoly(), step), "red") 145,147d110 < else < util.debugLine(startArc, step, "yellow") < util.debugPoly(poly.translate(mcontroller.collisionPoly(), step), "yellow") 156,159c119 < BData:setVec2(output.aimVector, aimVector) < BData:setNumber(output.aimAngle, math.atan(aimVector[2], aimVector[1])) < < return true --- > return true, {aimVector = aimVector, aimAngle = vec2.angle(aimVector)} 164,168c124 < function projectileGravityMultiplier(args, output) < args = parseArgs(args, { < projectileName = nil < }) < --- > function projectileGravityMultiplier(args, board) 170,172c126 < < BData:setNumber(output.gravityMultiplier, root.projectileGravityMultiplier(args.projectileName)) < return true --- > return true, {gravityMultiplier = root.projectileGravityMultiplier(args.projectileName)} scripts\actions\query.lua 9,21c9,10 < function queryEntity(args, output) < args = parseArgs(args, { < position = "self", < range = 20, < entityTypes = {"player", "monster", "npc"}, < orderBy = "nearest", < withoutEntity = "self" < }) < < local position = BData:getPosition(args.position) < if position == nil then return false end < local range = BData:getNumber(args.range) < if range == nil then return false end --- > function queryEntity(args, board) > if args.position == nil or args.range == nil then return false end 26c15 < withoutEntityId = BData:getEntity(args.withoutEntity) --- > withoutEntityId = args.withoutEntity 28c17 < local nearEntities = world.entityQuery(position, range, queryArgs) --- > local nearEntities = world.entityQuery(args.position, args.range, queryArgs) 30,32c19 < BData:setEntity(output.entity, nearEntities[1]) < BData:setList(output.list, nearEntities) < return true --- > return true, {entity = nearEntities[1], list = nearEntities} 43,48c30,31 < function findObject(args, output) < args = parseArgs(args, { < position = "self", < range = 20, < orderBy = "nearest" < }) --- > function findObject(args, board) > if args.position == nil then return false end 50,53c33 < local position = BData:getPosition(args.position) < if position == nil then return false end < < local objects = world.entityQuery(position, args.range, { includedTypes = {"object"}, order = args.orderBy }) --- > local objects = world.entityQuery(args.position, args.range, { includedTypes = {"object"}, order = args.orderBy }) 65,67c45 < BData:setEntity(output.entity, objects[1]) < BData:setList(output.list, objects) < return true --- > return true, {entity = objects[1], list = objects} 79,89c57,58 < function findLoungable(args, output) < args = parseArgs(args, { < position = "self", < range = 20, < orderBy = "nearest", < orientation = "sit", < unoccupied = true < }) < < local position = BData:getPosition(args.position) < if position == nil then return false end --- > function findLoungable(args, board) > if args.position == nil then return false end 93c62 < withoutEntityId = BData:getEntity(args.withoutEntity) --- > withoutEntityId = args.withoutEntity 95c64 < local loungables = world.loungeableQuery(position, args.range, { orientation = args.orientation }, queryArgs) --- > local loungables = world.loungeableQuery(args.position, args.range, { orientation = args.orientation }, queryArgs) 108,110c77 < BData:setEntity(output.entity, loungables[1]) < BData:setList(output.list, loungables) < return true --- > return true, {entity = loungables[1], list = loungables} 119a87 > -- param exclude 122,131c90,91 < function findMonster(args, output) < args = parseArgs(args, { < position = "self", < range = 20, < type = nil, < orderBy = "nearest" < }) < < local position = BData:getPosition(args.position) < if position == nil then return false end --- > function findMonster(args, board) > if args.position == nil then return false end 133c93 < local monsters = world.entityQuery(position, args.range, { includedTypes = {"monster"}, order = args.orderBy }) --- > local monsters = world.entityQuery(args.position, args.range, { includedTypes = {"monster"}, order = args.orderBy, withoutEntityId = args.exclude }) 145,147c105 < BData:setEntity(output.entity, monsters[1]) < BData:setList(output.list, monsters) < return true --- > return true, {entity = monsters[1], list = monsters} 158,164c116,117 < function findNpc(args, output) < args = parseArgs(args, { < position = "self", < range = 20, < type = nil, < orderBy = "nearest" < }) --- > function findNpc(args, board) > if args.position == nil then return false end 166,169c119 < local position = BData:getPosition(args.position) < if position == nil then return false end < < local npcs = world.entityQuery(position, args.range, { includedTypes = {"npc"}, order = args.orderBy }) --- > local npcs = world.entityQuery(args.position, args.range, { includedTypes = {"npc"}, order = args.orderBy }) 181,183c131 < BData:setEntity(output.entity, npcs[1]) < BData:setList(output.list, npcs) < return true --- > return true, {entity = npcs[1], list = npcs} 194,203c142,143 < function findStagehand(args, output) < args = parseArgs(args, { < position = "self", < range = 20, < type = nil, < orderBy = "nearest" < }) < < local position = BData:getPosition(args.position) < if position == nil then return false end --- > function findStagehand(args, board) > if args.position == nil then return false end 205c145 < local stagehands = world.entityQuery(position, args.range, { includedTypes = {"stagehand"}, order = args.orderBy }) --- > local stagehands = world.entityQuery(args.position, args.range, { includedTypes = {"stagehand"}, order = args.orderBy }) 217,219c157 < BData:setEntity(output.entity, stagehands[1]) < BData:setList(output.list, stagehands) < return true --- > return true, {entity = stagehands[1], list = stagehands} 222c160 < end \ No newline at end of file --- > end scripts\actions\quests.lua 10,19c10,11 < function fireQuestEvent(args, output) < args = parseArgs(args, { < eventName = "", < source = "", < table = "" < }) < < local source = BData:getEntity(args.source) < local table = BData:getTable(args.table) < self.quest:fireEvent(args.eventName, source, table) --- > function fireQuestEvent(args, board) > self.quest:fireEvent(args.eventName, args.source, args.table) 23,25c15 < function updateQuestPortrait(args, output) < args = parseArgs(args, { }) < --- > function updateQuestPortrait(args, board) 31,33c21 < function cancelQuest(args, output) < args = parseArgs(args, { }) < --- > function cancelQuest(args, board) 38,44c26,27 < function questItem(args, output) < args = parseArgs(args, { < parameterName = "", < quest = "" < }) < local quest = BData:getTable(args.quest) < if not quest or not quest.questId then return false end --- > function questItem(args, board) > if not args.quest or not args.quest.questId then return false end 46c29 < local paramValue = self.quest:questParameter(quest.questId, args.parameterName) --- > local paramValue = self.quest:questParameter(args.quest.questId, args.parameterName) 51,56c34,36 < if output.table then < local descriptor = paramValue.item < if type(descriptor) == "string" then < descriptor = { name = descriptor } < end < BData:setTable(output.table, descriptor) --- > local descriptor = paramValue.item > if type(descriptor) == "string" then > descriptor = { name = descriptor } 58c38 < return true --- > return true, {table = descriptor} 61,67c41,42 < function questEntity(args, output) < args = parseArgs(args, { < parameterName = "", < quest = "" < }) < local quest = BData:getTable(args.quest) < if not quest or not quest.questId then return false end --- > function questEntity(args, board) > if not args.quest or not args.quest.questId then return false end 69c44 < local paramValue = self.quest:questParameter(quest.questId, args.parameterName) --- > local paramValue = self.quest:questParameter(args.quest.questId, args.parameterName) 79,82c54 < if output.entity then < BData:setEntity(output.entity, entityId) < end < return true --- > return true, {entity = entityId} 85,92c57 < function sayQuestDialog(args, output) < args = parseArgs(args, { < quest = "override", < dialogType = "", < entity = "target", < extraTags = {} < }) < local entityId = BData:getEntity(args.entity) --- > function sayQuestDialog(args, board) 95c60 < dialog = speciesDialog(dialog, entityId) --- > dialog = speciesDialog(dialog, args.entityId) 99,101c64,66 < local quest = BData:getTable(args.quest) < if type(quest) == "table" and quest.questId then < quest = quest.questId --- > local quest = args.quest > if type(args.quest) == "table" and args.quest.questId then > quest = args.quest.questId 120,121c85 < function isGivingQuest(args, output) < args = parseArgs(args, { }) --- > function isGivingQuest(args, board) 125,126c89 < function hasQuest(args, output) < args = parseArgs(args, { }) --- > function hasQuest(args, board) 206,207d168 < args = parseArgs(args, { }) < 251,259c212,214 < function getQuestValue(args, output) < args = parseArgs(args, { < quest = "", < name = "" < }) < < local quest = BData:getTable(args.quest) < if not quest then return false end < local questId = quest.questId or quest --- > function getQuestValue(args, board) > if not args.quest then return false end > local questId = args.quest.questId or args.quest 264,268c219 < local setType, index = BData.findType(output) < if setType then < BData:set(setType, index, value) < end < return true --- > return true, {list = value, bool = value, number = value} 274,282c225,227 < function setQuestValue(args, output) < args = parseArgs(args, { < quest = "", < name = "" < }) < < local quest = BData:getTable(args.quest) < if not quest then return false end < local questId = quest.questId or quest --- > function setQuestValue(args, board) > if not args.quest then return false end > local questId = args.quest.questId or args.quest 284,285c229,230 < local getType,index = BData.findType(args) < local value = type(index) ~= "string" and index or BData:get(getType, index) --- > -- always put args.bool last, it can be false > local value = args.list or args.number or args.bool 294,302c239,241 < function unsetQuestValue(args, output) < args = parseArgs(args, { < quest = "", < name = "" < }) < < local quest = BData:getTable(args.quest) < if not quest then return false end < local questId = quest.questId or quest --- > function unsetQuestValue(args, board) > if not args.quest then return false end > local questId = args.quest.questId or args.quest scripts\actions\reaction.lua 3a4,6 > -- Stores behavior trees for this context so they don't need to be rebuilt every time > ReactionTreeCache = {} > 37,43c40,42 < function getPersonality(args, output) < args = parseArgs(args, { < target = "" < }) < local target = BData:getEntity(args.target) < if target == nil then return false end < local influence = world.callScriptedEntity(target, "personalityType") --- > function getPersonality(args, board) > if args.target == nil then return false end > local influence = world.callScriptedEntity(args.target, "personalityType") 45,48c44 < if output.influence then < BData:set("influence", output.influence, influence) < end < return true --- > return true, {influence = influence} 54,61c50,51 < function entityRelationship(args, output) < args = parseArgs(args, { < relationship = "", < converse = false, < target = "" < }) < local target = BData:getEntity(args.target) < local uniqueId = world.entityUniqueId(target) --- > function entityRelationship(args, board) > local uniqueId = world.entityUniqueId(args.target) 70,78c60,61 < function chooseReaction(args, output) < args = parseArgs(args, { < target = "", < influence = "" < }) < < local influence = BData:get("influence", args.influence) < if influence == nil then return false end < local target = BData:getEntity(args.target) --- > function chooseReaction(args, board) > if args.influence == nil then return false end 80c63 < local reactions = getReaction(influence, target) --- > local reactions = getReaction(args.influence, args.target) 86,89c69 < if output.reaction then < BData:set("reaction", output.reaction, reaction) < end < return true --- > return true, {reaction = reaction} 114,120c94,95 < function resetReaction(args, output) < args = parseArgs(args, {}) < < if output.reaction then < BData:set("reaction", output.reaction, nil) < end < return true --- > function resetReaction(args, board) > return true, {reaction = nil} 125,132c100,102 < function isReaction(args, output) < args = parseArgs(args, { < reactionVar = "", < reactionName = "" < }) < local reaction = BData:get("reaction", args.reactionVar) < if reaction == nil then return false end < return reaction == args.reactionName --- > function isReaction(args, board) > if args.reactionVar == nil then return false end > return args.reactionVar == args.reactionName 136,142c106 < function isFinalReaction(args, output) < args = parseArgs(args, { < reaction = "", < influence = "" < }) < local reaction = BData:get("reaction", args.reaction) < local influence = BData:get("influence", args.influence) --- > function isFinalReaction(args, board) 144c108 < if final == reaction or final == influence then --- > if final == args.reaction or final == args.influence then 151a116 > -- output list 153,157c118,120 < function listPopInfluence(args, output) < args = parseArgs(args, { < list = "" < }) < local value = BData:popList(args.list) --- > function listPopInfluence(args, board) > local list = args.list or jarray() > local value = list[1] 159,163c122,123 < < if output.influence then < BData:set("influence", output.influence, value) < end < return true --- > table.remove(list, 1) > return true, {list = list, influence = value} 167,176c127,131 < function npcToyIsAvailable(args, output) < args = parseArgs(args, { < target = "" < }) < < local target = BData:getEntity(args.target) < if target == nil then return false end < if world.callScriptedEntity(target, "npcToy.isAvailable") then < if world.callScriptedEntity(target, "npcToy.isOwnerOnly") then < return storage.homeBoundary ~= nil and world.polyContains(storage.homeBoundary, world.entityPosition(target)) --- > function npcToyIsAvailable(args, board) > if args.target == nil then return false end > if world.callScriptedEntity(args.target, "npcToy.isAvailable") then > if world.callScriptedEntity(args.target, "npcToy.isOwnerOnly") then > return storage.homeBoundary ~= nil and world.polyContains(storage.homeBoundary, world.entityPosition(args.target)) 185,190c140 < args = parseArgs(args, { < target = "" < }) < < local target = BData:getEntity(args.target) < if target == nil then return false end --- > if args.target == nil then return false end 192c142 < local maxNpcs = world.callScriptedEntity(target, "npcToy.getMaxNpcs") --- > local maxNpcs = world.callScriptedEntity(args.target, "npcToy.getMaxNpcs") 202,209c152,154 < function npcToyIsPriority(args, output) < args = parseArgs(args, { < target = "" < }) < < local target = BData:getEntity(args.target) < if target == nil then return false end < if world.callScriptedEntity(target, "npcToy.isPriority") then --- > function npcToyIsPriority(args, board) > if args.target == nil then return false end > if world.callScriptedEntity(args.target, "npcToy.isPriority") then 219,225c164,165 < function npcToyPreciseStandPosition(args, output) < args = parseArgs(args, { < target = "" < }) < < local target = BData:getEntity(args.target) < if target == nil then return false end --- > function npcToyPreciseStandPosition(args, board) > if args.target == nil then return false end 227c167 < local standPosition = world.callScriptedEntity(target, "npcToy.getPreciseStandPosition") --- > local standPosition = world.callScriptedEntity(args.target, "npcToy.getPreciseStandPosition") 230c170 < local position = world.entityPosition(target) --- > local position = world.entityPosition(args.target) 233,242c173 < if output.position then < BData:setPosition(output.position, standPosition) < end < if output.x then < BData:setNumber(output.x, standPosition[1]) < end < if output.y then < BData:setNumber(output.y, standPosition[2]) < end < return true --- > return true, {position = standPosition, x = standPosition[1], y = standPosition[2]} 249,257c180,182 < function npcToyImpreciseStandPosition(args, output) < args = parseArgs(args, { < target = "" < }) < < local target = BData:getEntity(args.target) < if target == nil then return false end < < local standPosition = world.callScriptedEntity(target, "npcToy.getImpreciseStandPosition") --- > function npcToyImpreciseStandPosition(args, board) > if args.target == nil then return false end > local standPosition = world.callScriptedEntity(args.target, "npcToy.getImpreciseStandPosition") 260c185 < local position = world.entityPosition(target) --- > local position = world.entityPosition(args.target) 263,272c188 < if output.position then < BData:setPosition(output.position, standPosition) < end < if output.x then < BData:setNumber(output.x, standPosition[1]) < end < if output.y then < BData:setNumber(output.y, standPosition[2]) < end < return true --- > return true, {position = standPosition, x = standPosition[1], y = standPosition[2]} 277,284c193,195 < function npcToyPlay(args, output) < args = parseArgs(args, { < entity = "" < }) < < local target = BData:getEntity(args.entity) < if target == nil then return false end < if not world.callScriptedEntity(target, "npcToy.isAvailable") then --- > function npcToyPlay(args, board) > if args.entity == nil then return false end > if not world.callScriptedEntity(args.entity, "npcToy.isAvailable") then 287,288c198,199 < world.callScriptedEntity(target, "npcToy.notifyNpcPlay", entity.id()) < self.playTarget = target --- > world.callScriptedEntity(args.entity, "npcToy.notifyNpcPlay", entity.id()) > self.playTarget = args.entity 290,292c201,204 < local influences = world.callScriptedEntity(target, "npcToy.getInfluence") < if influences == nil then return false end < BData:setList(output.influences, influences) --- > local influences = world.callScriptedEntity(args.entity, "npcToy.getInfluence") > if influences == nil then > return false > end 300c212 < coroutine.yield() --- > coroutine.yield(nil, {influences = influences}) 302d213 < return true 306,308c217 < function receivedInfluenceNotification(args, output) < args = parseArgs(args, {}) < --- > function receivedInfluenceNotification(args, board) 311,313d219 < if output.influence then < BData:set("influence", output.influence, notification.influence) < end 315c221 < return true --- > return true, {influence = notification.influence} 323,333c229,231 < function sendInfluenceNotification(args, output) < args = parseArgs(args, { < reaction = "", < target = "" < }) < local reaction = BData:get("reaction", args.reaction) < if reaction == nil then return false end < local target = BData:getEntity(args.target) < if target == nil or world.entityType(target) == "player" then < return false < end --- > function sendInfluenceNotification(args, board) > if args.reaction == nil then return false end > if args.target == nil or world.entityType(args.target) == "player" then return false end 337c235 < targetId = target, --- > targetId = args.target, 339c237 < influence = reaction --- > influence = args.reaction 341c239 < world.callScriptedEntity(target, "notify", notification) --- > world.callScriptedEntity(args.target, "notify", notification) 347,352c245,246 < function setInfluence(args, output) < args = parseArgs(args, { < influence = "" < }) < BData:set("influence", output.influence, args.influence) < return true --- > function setInfluence(args, board) > return true, {influence = args.influence} 356,361c250,251 < function playSimpleReaction(args, output, _, dt) < args = parseArgs(args, { < reaction = "" < }) < local reaction = BData:get("reaction", args.reaction) < if reaction == nil then return false end --- > function playSimpleReaction(args, board, _, dt) > if args.reaction == nil then return false end 363c253 < local reactionConfig = simpleReactions[reaction] --- > local reactionConfig = simpleReactions[args.reaction] 380,382c270,271 < function playBehaviorReaction(args, output, nodeId, dt) < local reactionName = BData:get("reaction", args.reaction) < local reaction = root.assetJson("/npcs/default_reactions.config:behaviorReactions")[reactionName] --- > function playBehaviorReaction(args, board, nodeId, dt) > local reaction = root.assetJson("/npcs/default_reactions.config:behaviorReactions")[args.reaction] 384c273,274 < local tree = BData:getTable(string.format("playBehaviorReaction-%s-%s", reactionName, nodeId)) --- > local key = string.format("playBehaviorReaction-%s-%s", args.reaction, nodeId) > local tree = ReactionTreeCache[key] 386,388c276,277 < local newTree = root.behavior(reaction.behavior, reaction.parameters or {}) < tree = {newTree, newTree:init(_ENV)} < BData:setTable(string.format("playBehaviorReaction-%s-%s", reactionName, nodeId), tree) --- > tree = behavior.behavior(reaction.behavior, reaction.parameters or {}, _ENV, board) > ReactionTreeCache[key] = tree 390c279 < tree[1]:clear() --- > tree:clear() 394c283 < local result = tree[1]:run(tree[2], dt) --- > local result = tree:run(dt) scripts\actions\sensor.lua 8,25c8,12 < function lineTileCollision(args, output) < args = parseArgs(args, { < position = "self", < offset = {0,0}, < collisionType = {"Null", "Block", "Dynamic"} < }) < < local sensorOffset < if args.x and args.y then < sensorOffset = {BData:getNumber(args.x), BData:getNumber(args.y)} < else < sensorOffset = BData:getVec2(args.offset) < end < local position = BData:getPosition(args.position) < if sensorOffset == nil or position == nil then return false end < < local targetPosition = vec2.add(position, sensorOffset) < return world.lineTileCollision(position, targetPosition, args.collisionType) --- > function lineTileCollision(args, board) > local sensorOffset = (args.x and args.y) and {args.x, args.y} or args.offset > if sensorOffset == nil or args.position == nil then return false end > local targetPosition = vec2.add(args.position, sensorOffset) > return world.lineTileCollision(args.position, targetPosition, args.collisionType) 28c15 < function visibleToPlayer(args) --- > function visibleToPlayer(args, board) 37,43c24,25 < function wallCollision(args, output) < args = parseArgs(args, { < direction = "facingDirection" < }) < < local direction = BData:getNumber(args.direction) < if not direction then return false end --- > function wallCollision(args, board) > if not args.direction then return false end 46c28 < if direction > 0 then --- > if args.direction > 0 then 55,56d36 < util.debugRect(bounds, "yellow") < 61,63c41 < function groundCollision(args, output) < args = parseArgs(args, {}) < --- > function groundCollision(args, board) 71,75c49 < function boundsCollision(args, output) < args = parseArgs(args, { < dirVector = nil < }) < local dirVector = BData:getVec2(args.dirVector) --- > function boundsCollision(args, board) 78c52 < if dirVector == nil then --- > if args.dirVector == nil then 80c54 < elseif dirVector[1] > 0 then --- > elseif args.dirVector[1] > 0 then 83c57 < elseif dirVector[1] < 0 then --- > elseif args.dirVector[1] < 0 then 86c60 < elseif dirVector[2] > 0 then --- > elseif args.dirVector[2] > 0 then 100,104c74 < args = parseArgs(args, { < position = nil < }) < local position = BData:getPosition(args.position) < if position == nil then return false end --- > if args.position == nil then return false end 106c76 < return world.pointTileCollision(position, {"Null","Block","Dynamic"}) --- > return world.pointTileCollision(args.position, {"Null","Block","Dynamic"}) 111,122c81,85 < function lineLiquidCollision(args, output) < args = parseArgs(args, { < startLine = nil, < endLine = nil, < excludeLiquidIds = nil < }) < < local startLine, endLine = BData:getPosition(args.startLine), BData:getPosition(args.endLine) < local excludeLiquidIds = BData:getTable(args.excludeLiquidIds) < local blocks = world.liquidAlongLine(startLine, endLine) < if excludeLiquidIds then < blocks = util.filter(blocks, function(liquid) return not contains(excludeLiquidIds, liquid[2][1]) end) --- > -- param excludeLiquidIds > function lineLiquidCollision(args, board) > local blocks = world.liquidAlongLine(args.startLine, args.endLine) > if args.excludeLiquidIds then > blocks = util.filter(blocks, function(liquid) return not contains(args.excludeLiquidIds, liquid[2][1]) end) scripts\actions\status.lua 3,8c3 < function resourcePercentage(args, output) < args = parseArgs(args, { < resource = "health", < percentage = 1 < }) < --- > function resourcePercentage(args, board) 14,20c9,10 < function stat(args, output) < args = parseArgs(args, { < statName = nil < }) < < BData:setNumber(output.value, status.stat(args.statName)) < return true --- > function stat(args, board) > return true, {value = status.stat(args.statName)} 25,30c15 < function setResource(args, output) < args = parseArgs(args, { < resource = "health", < amount = 100 < }) < --- > function setResource(args, board) 37,44c22,23 < function setResourcePercentage(args, output) < args = parseArgs(args, { < resource = "health", < percentage = 1 < }) < < local percentage = BData:getNumber(args.percentage) < status.setResourcePercentage(args.resource, percentage) --- > function setResourcePercentage(args, board) > status.setResourcePercentage(args.resource, args.percentage) 50,52c29 < function addEphemeralEffect(args, output) < args = parseArgs(args, { < }) --- > function addEphemeralEffect(args, board) 55,56c32 < local duration = BData:getNumber(args.duration) < status.addEphemeralEffect(args.name, duration) --- > status.addEphemeralEffect(args.name, args.duration) 61,63c37 < function removeEphemeralEffect(args, output) < args = parseArgs(args, { < }) --- > function removeEphemeralEffect(args, board) 73,81c47,48 < function addStatModifier(args, output) < args = parseArgs(args, { < category = "default", < stat = nil, < amount = nil < }) < < local amount = BData:getNumber(args.amount) < if args.stat == nil or amount == nil then return false end --- > function addStatModifier(args, board) > if args.stat == nil or args.amount == nil then return false end 83c50 < status.addPersistentEffect(args.category, {stat = args.stat, amount = amount}) --- > status.addPersistentEffect(args.category, {stat = args.stat, amount = args.amount}) 88,92c55 < function clearPersistentEffects(args, output) < args = parseArgs(args, { < category = "default" < }) < --- > function clearPersistentEffects(args, board) 97c60 < function suicide(args, output) --- > function suicide(args, board) scripts\actions\time.lua 7,8d6 < elseif type(time) == "string" then < return BData:getNumber(time) 16,19c14 < function timer(args, output, _, dt) < args = parseArgs(args, { < time = 1 < }) --- > function timer(args, board, _, dt) 25,27c20 < BData:setNumber(output.ratio, (max - timer) / max) < < dt = coroutine.yield() --- > dt = coroutine.yield(nil, {ratio = (max - timer) / max}) 30c23 < return true --- > return true, {ratio = 1.0} 34,37c27 < function withinTimeRange(args, output) < args = parseArgs(args, { < range = {0,0} < }) --- > function withinTimeRange(args, board) scripts\actions\world.lua 15,19c15,16 < function playersInWorld(args, output) < args = parseArgs(args, { < }) < BData:setList(output.list, world.players()) < return true --- > function playersInWorld(args, board) > return true, {list = world.players()} 23,27c20 < function setUniverseFlag(args, output) < args = parseArgs(args, { < flag = nil < }) < --- > function setUniverseFlag(args, board) 35,42c28,30 < function entityAggressive(args, output) < args = parseArgs(args, { < entity = "self" < }) < < local entityId = BData:getEntity(args.entity) < if not entityId or not world.entityExists(entityId) then return false end < return world.entityAggressive(entityId) --- > function entityAggressive(args, board) > if not args.entity or not world.entityExists(args.entity) then return false end > return world.entityAggressive(args.entity) 46,54c34,36 < function entityExists(args, output) < args = parseArgs(args, { < entity = "self" < }) < < local entityId = BData:getEntity(args.entity) < if entityId == nil then return false end < < return world.entityExists(entityId) --- > function entityExists(args, board) > if args.entity == nil then return false end > return world.entityExists(args.entity) 59,71c41,45 < function entityPosition(args, output) < args = parseArgs(args, { < entity = "self" < }) < < local entityId = BData:getEntity(args.entity) < if entityId == nil or not world.entityExists(entityId) then return false end < < local position = world.entityPosition(entityId) < BData:setPosition(output.position, position) < BData:setNumber(output.x, position[1]) < BData:setNumber(output.y, position[2]) < return true --- > function entityPosition(args, board) > if args.entity == nil or not world.entityExists(args.entity) then return false end > > local position = world.entityPosition(args.entity) > return true, {position = position, x = position[1], y = position[2]} 79,87c53,54 < function entityInRange(args, output) < args = parseArgs(args, { < position = "self", < entity = "target" < }) < < local position = BData:getPosition(args.position) < local targetId = BData:getEntity(args.entity) < if targetId == nil or not world.entityExists(targetId) or position == nil then return false end --- > function entityInRange(args, board) > if args.entity == nil or not world.entityExists(args.entity) or args.position == nil then return false end 89c56 < local targetPosition = world.entityPosition(targetId) --- > local targetPosition = world.entityPosition(args.entity) 92c59 < return world.magnitude(targetPosition, position) <= BData:getNumber(args.range) --- > return world.magnitude(targetPosition, args.position) <= args.range 94c61 < return math.abs(world.distance(targetPosition, position)[1]) <= BData:getNumber(args.xRange) --- > return math.abs(world.distance(targetPosition, args.position)[1]) <= args.xRange 96c63 < return math.abs(world.distance(targetPosition, position)[2]) <= BData:getNumber(args.yRange) --- > return math.abs(world.distance(targetPosition, args.position)[2]) <= args.yRange 105,111c72 < args = parseArgs(args, { < entity = "target", < types = {"player", "npc", "monster"} < }) < < local entityId = BData:getEntity(args.entity) < if entityId == nil or args.types == nil then return false end --- > if args.entity == nil or args.types == nil then return false end 113c74 < local entityType = world.entityType(entityId) --- > local entityType = world.entityType(args.entity) 124,131c85,86 < function entityHealth(args, output) < args = parseArgs(args, { < entity = "" < }) < < local entity = BData:getEntity(args.entity) < if entity == nil then return false end < local health = world.entityHealth(entity) --- > function entityHealth(args, board) > local health = world.entityHealth(args.entity) 134,137c89 < if output.number then < BData:setNumber(output.number, health[1]) < end < return true --- > return true, {number = health[1]} 142,149c94,95 < function entityHealthPercentage(args, output) < args = parseArgs(args, { < entity = "" < }) < < local entity = BData:getEntity(args.entity) < if entity == nil then return false end < local health = world.entityHealth(entity) --- > function entityHealthPercentage(args, board) > local health = world.entityHealth(args.entity) 152,155c98 < if output.number then < BData:setNumber(output.number, health[1]/health[2]) < end < return true --- > return true, {number = health[1]/health[2]} 160,167c103,104 < function entityMoney(args, output) < args = parseArgs(args, { < entity = "" < }) < < local entity = BData:getEntity(args.entity) < if entity == nil then return false end < local money = world.entityCurrency(entity, "money") --- > function entityMoney(args, board) > local money = world.entityCurrency(args.entity, "money") 170,173c107 < if output.number then < BData:setNumber(output.number, money) < end < return true --- > return true, {number = money} 178,188c112,115 < function isNpc(args, output) < args = parseArgs(args, { < entity = nil, < damageTeam = nil < }) < < local entityId = BData:getEntity(args.entity) < local team = BData:getNumber(args.damageTeam) < if entityId == nil then return false end < < return world.isNpc(entityId, team) --- > function isNpc(args, board) > if args.entity == nil then return false end > > return world.isNpc(args.entity, args.team) 194,204c121,123 < args = parseArgs(args, { < entity = nil, < func = nil < }) < < local entityId = BData:getEntity(args.entity) < if entityId == nil or args.func == nil then return false end < < -- OBS: Only use this locally < -- Might want to use it remotely later, if so change this < return world.callScriptedEntity(entityId, args.func) == true --- > if args.entity == nil or args.func == nil then return false end > > return world.callScriptedEntity(args.entity, args.func) == true 209,217c128,130 < function sendEntityMessage(args, output) < args = parseArgs(args, { < entity = nil, < message = nil, < arguments = {} < }) < < local entityId = BData:getEntity(args.entity) < if entityId == nil or args.message == nil then return false end --- > -- param arguments > function sendEntityMessage(args, board) > if args.entity == nil or args.message == nil then return false end 219c132 < world.sendEntityMessage(entityId, args.message, table.unpack(args.arguments)) --- > world.sendEntityMessage(args.entity, args.message, table.unpack(args.arguments)) 225,231c138,139 < function loadUniqueEntity(args, output) < args = parseArgs(args, { < uniqueId = nil < }) < < local uniqueId = args.uniqueId < if not uniqueId then return false end --- > function loadUniqueEntity(args, board) > if not args.uniqueId then return false end 233,236c141,142 < local entityId = world.loadUniqueEntity(uniqueId) < if not world.entityExists(entityId) then < return false < end --- > local entityId = world.loadUniqueEntity(args.uniqueId) > if not world.entityExists(entityId) then return false end 238,241c144 < if output.entity then < BData:setEntity(output.entity, entityId) < end < return true --- > return true, {entity = entityId} 244,252c147,150 < -- param entityId < function keepEntityLoaded(args, output) < args = parseArgs(args, { < entity = nil, < region = {-4, -4, 4, 4} < }) < < local entityId = BData:getEntity(args.entity) < if entityId == nil or not world.entityExists(entityId) then return false end --- > -- param entity > -- param region > function keepEntityLoaded(args, board) > if args.entity == nil or not world.entityExists(args.entity) then return false end 254c152 < local position = world.entityPosition(entityId) --- > local position = world.entityPosition(args.entity) 261,268c159,161 < function hasSpeciesSpecificDescription(args, output) < args = parseArgs(args, { < entity = "target", < species = (entity.entityType() == "npc" and npc.species()) or "human" < }) < < local entityId = BData:getEntity(args.entity) < if not entityId or not world.entityExists(entityId) then return false end --- > function hasSpeciesSpecificDescription(args, board) > local species = args.species or (entity.entityType() == "npc" and npc.species()) or "human" > if not args.entity or not world.entityExists(args.entity) then return false end 273c166 < return world.entityDescription(entityId, args.species) ~= world.entityDescription(entityId) --- > return world.entityDescription(args.entity, species) ~= world.entityDescription(args.entity) 276,281c169,171 < function entityHoldingWeapon(args, output) < args = parseArgs(args, { < entity = nil < }) < local entityId = BData:getEntity(args.entity) < if entityId == nil then return false end --- > -- param entity > function entityHoldingWeapon(args, board) > if args.entity == nil then return false end 283,284c173,174 < local primaryItem = world.entityHandItem(entityId, "primary") < local altItem = world.entityHandItem(entityId, "alt") --- > local primaryItem = world.entityHandItem(args.entity, "primary") > local altItem = world.entityHandItem(args.entity, "alt") 289,296c179,180 < function entityHandItemTag(args, output) < args = parseArgs(args, { < entity = nil, < itemTag = nil < }) < < local entityId = BData:getEntity(args.entity) < local primary, alt = world.entityHandItem(entityId, "primary"), world.entityHandItem(entityId, "alt") --- > function entityHandItemTag(args, board) > local primary, alt = world.entityHandItem(args.entity, "primary"), world.entityHandItem(args.entity, "alt") 307,314c191,194 < function loungableOccupied(args, output) < args = parseArgs(args, { < entity = "loungable" < }) < local entityId = BData:getEntity(args.entity) < if entityId == nil then return false end < < return world.loungeableOccupied(entityId) == true --- > function loungableOccupied(args, board) > if args.entity == nil then return false end > > return world.loungeableOccupied(args.entity) == true 318,324c198,200 < function isLoungeable(args, output) < args = parseArgs(args, { < entity = "loungeable" < }) < local entityId = BData:getEntity(args.entity) < if entityId == nil then return false end < return world.getObjectParameter(entityId, "objectType") == "loungeable" --- > function isLoungeable(args, board) > if args.entity == nil then return false end > return world.getObjectParameter(args.entity, "objectType") == "loungeable" 329,331c205 < args = parseArgs(args, { < entity = "object" < }) --- > if args.entity == nil then return false end 333,336c207 < local objectId = BData:getEntity(args.entity) < if objectId == nil then return false end < < world.callScriptedEntity(objectId, "onInteraction", {sourceId = entity.id()}) --- > world.callScriptedEntity(args.entity, "onInteraction", {sourceId = entity.id()}) 343,349c214 < function hasItemTag(args, output) < args = parseArgs(args, { < objectEntity = nil, < itemName = nil, < tag = "" < }) < --- > function hasItemTag(args, board) 351,352c216 < local entityId = BData:getEntity(args.objectEntity) < if not entityId or not world.entityExists(entityId) then return false end --- > if not args.objectEntity or not world.entityExists(args.objectEntity) then return false end 354c218 < local tags = world.getObjectParameter(entityId, "itemTags", {}) --- > local tags = world.getObjectParameter(args.objectEntity, "itemTags", {}) 367,389c231,241 < function spawnNpc(args, output) < args = parseArgs(args, { < position = "self", < species = npc and npc.species() or "human", < type = npc and npc.npcType() or "villager", < level = entityLevel(), < damageTeamType = entity.damageTeam().type, < damageTeam = entity.damageTeam().team, < seed = nil, < parameters = {} < }) < < local position = BData:getPosition(args.position) < local species = args.species < local npcType = args.type < local level = BData:getNumber(args.level) < local damageTeamType = args.damageTeamType < local damageTeam = args.damageTeam < local seed = BData:getNumber(args.seed) < < local parameters = copy(BData:getTable(args.parameters)) < parameters.damageTeam = damageTeam < parameters.damageTeamType = damageTeamType --- > -- param position > -- param species > -- param type > -- param level > -- param damageTeamType > -- param damageTeam > -- param seed > -- param parameters > function spawnNpc(args, board) > args.parameters.damageTeam = args.damageTeam > args.parameters.damageTeamType = args.damageTeamType 391c243 < if not position or not species or not npcType or not level then --- > if not args.position or not args.species or not args.npcType or not args.level then 395c247 < local entityId = world.spawnNpc(position, species, npcType, level, seed, parameters) --- > local entityId = world.spawnNpc(args.position, args.species, args.npcType, args.level, args.seed, args.parameters) 402a255,259 > -- param damageTeamType > -- param damageTeam > -- param replacement > -- param parameters > -- param inheritParameters 404,420c261,262 < function spawnMonster(args, output) < args = parseArgs(args, { < position = "self", < type = "smallbiped", < level = entityLevel(), < damageTeamType = nil, < damageTeam = nil, < replacement = false, < parameters = {}, < inheritParameters = {} < }) < < local position = BData:getPosition(args.position) < local level = BData:getNumber(args.level) < local replacement = BData:getBool(args.replacement) < local inheritParameters = BData:getTable(args.inheritParameters) < if position == nil or args.level == nil then return false end --- > function spawnMonster(args, board) > if args.position == nil then return false end 423c265 < parameters.level = level --- > parameters.level = args.level or entityLevel() 426c268 < parameters.aggressive = config.getParameter("aggressive", true) --- > parameters.aggressive = parameters.aggressive or config.getParameter("aggressive", true) 428c270 < for _, paramName in pairs(inheritParameters) do --- > for _, paramName in pairs(args.inheritParameters) do 432c274 < if replacement then --- > if args.replacement then 448,449c290,291 < local entityId = world.spawnMonster(args.type, position, parameters) < if replacement then --- > local entityId = world.spawnMonster(args.type, args.position, parameters) > if args.replacement then 453c295 < if replacement and parameters.podUuid and capturable then --- > if args.replacement and parameters.podUuid and capturable then 469,471c311 < BData:setEntity(output.entityId, entityId) < < return true --- > return true, {entityId = entityId} 478,485c318 < args = parseArgs(args, { < position = "self", < type = "smallbiped", < stagehandConfig = {} < }) < < local position = BData:getPosition(args.position) < if position == nil then return false end --- > if args.position == nil then return false end 487c320 < world.spawnStagehand(position, args.type, args.stagehandConfig) --- > world.spawnStagehand(args.position, args.type, args.stagehandConfig) scripts\actions\boss\apeboss.lua 5,14c5 < function spawnProjectors(args, output) < args = parseArgs(args, { < monsterType = "apebossprojector", < count = 4, < distance = 10 < }) < < local count = BData:getNumber(args.count) < local distance = BData:getNumber(args.distance) < --- > function spawnProjectors(args, board) 16,17c7,8 < local stepAngle = (math.pi * 2) / count < for i = 1, count do --- > local stepAngle = (math.pi * 2) / args.count > for i = 1, args.count do 23d13 < BData:setList(output.projectors, projectors) 26c16 < return true --- > return true, {projectors = projectors} 32,40c22 < function projectorHealthPercentage(args, output) < args = parseArgs(args, { < projectorList = nil, < count = 4 < }) < < local projectors = BData:getList(args.projectorList) < local count = BData:getNumber(args.count) < --- > function projectorHealthPercentage(args, board) 42c24 < for _,projectorId in ipairs(projectors) do --- > for _,projectorId in ipairs(args.projectorList) do 47,48c29 < BData:setNumber(output.healthPercentage, sum / count) < return true --- > return true, {healthPercentage = sum / args.count} 53,61c34,35 < function updateProjectors(args, output) < args = parseArgs(args, { < projectorList = nil < }) < < local projectors = BData:getList(args.projectorList) < if projectors == nil then return false end < < setLeadProjector(projectors) --- > function updateProjectors(args, board) > if args.projectorList == nil then return false end 62a37 > setLeadProjector(args.projectorList) 67,75c42,43 < function setProjectorSpeeds(args, output) < args = parseArgs(args, { < projectorList = nil, < speed = 10 < }) < < local projectors = BData:getList(args.projectorList) < local speed = BData:getNumber(args.speed) < if projectors == nil then return false end --- > function setProjectorSpeeds(args, board) > if args.projectorList == nil then return false end 77,78c45,46 < for _,projectorId in pairs(projectors) do < world.sendEntityMessage(projectorId, "setSpeed", speed) --- > for _,projectorId in pairs(args.projectorList) do > world.sendEntityMessage(projectorId, "setSpeed", args.speed) 85,99c53,58 < function fireProjectorMissiles(args, output) < args = parseArgs(args, { < projectorList = nil, < power = 10, < target = nil < }) < < local projectors = BData:getList(args.projectorList) < local targetId = BData:getEntity(args.target) < local power = BData:getNumber(args.power) < if power == nil or targetId == nil then return false end < < power = power * root.evalFunction("monsterLevelPowerMultiplier", monster.level()) < for _,projectorId in pairs(projectors) do < world.sendEntityMessage(projectorId, "fireMissiles", targetId, power) --- > function fireProjectorMissiles(args, board) > if args.power == nil or args.target == nil then return false end > > local power = args.power * root.evalFunction("monsterLevelPowerMultiplier", monster.level()) > for _,projectorId in pairs(args.projectorList) do > world.sendEntityMessage(projectorId, "fireMissiles", args.target, power) 106,115c65,67 < function launchEnergyFists(args, output) < args = parseArgs(args, { < launchGroups = 1, < power = 10 < }) < < local launchGroups = BData:getNumber(args.launchGroups) < local group = math.random(1, launchGroups) < local power = BData:getNumber(args.power) < power = power * root.evalFunction("monsterLevelPowerMultiplier", monster.level()) --- > function launchEnergyFists(args, board) > local group = math.random(1, args.launchGroups) > local power = args.power * root.evalFunction("monsterLevelPowerMultiplier", monster.level()) 126,130c78 < function setScreenStates(args, output) < args = parseArgs(args, { < state = "idle" < }) < --- > function setScreenStates(args, board) scripts\actions\boss\cultistboss.lua 3,19c3,4 < function cultistSphereDash(args, output) < args = parseArgs(args, { < target = nil, < initialOffset = {0, 10}, < speed = 50, < controlForce = 50, < centripetalForce = 50 < }) < < local targetId = BData:getEntity(args.target) < local offset = BData:getVec2(args.initialOffset) < local speed = BData:getNumber(args.speed) < local controlForce = BData:getNumber(args.controlForce) < local centripetalForce = BData:getNumber(args.centripetalForce) < local anchorDistance = BData:getNumber(args.anchorDistance) < < local targetPosition = world.entityPosition(targetId) --- > function cultistSphereDash(args, board) > local targetPosition = world.entityPosition(args.target) 37c22 < mcontroller.controlApproachVelocity(vec2.mul(tangential, speed), controlForce) --- > mcontroller.controlApproachVelocity(vec2.mul(tangential, args.speed), args.controlForce) 39c24 < mcontroller.controlApproachVelocityAlongAngle(vec2.angle(toAnchor), centripetalSpeed, centripetalForce) --- > mcontroller.controlApproachVelocityAlongAngle(vec2.angle(toAnchor), centripetalSpeed, args.centripetalForce) scripts\actions\boss\eyeboss.lua 4,14c4 < function tentacleMovement(args, output, _, dt) < args = parseArgs(args, { < tentacleCount = 6, < movement = 0.75, < speedRange = {1.0, 2.0} < }) < < local tentacleCount = BData:getNumber(args.tentacleCount) < local movement = BData:getNumber(args.movement) < local speedRange = BData:getVec2(args.speedRange) < --- > function tentacleMovement(args, board, _, dt) 16c6 < local speeds = util.rep(function() return util.randomInRange(speedRange) end, 6) --- > local speeds = util.rep(function() return util.randomInRange(args.speedRange) end, 6) 20c10 < for i = 1, tentacleCount do --- > for i = 1, args.tentacleCount do 23c13 < if offsets[i] > movement or offsets[i] < 0 then --- > if offsets[i] > args.movement or offsets[i] < 0 then 25c15 < speeds[i] = util.randomInRange(speedRange) --- > speeds[i] = util.randomInRange(args.speedRange) 30c20 < offsets[i] = movement --- > offsets[i] = args.movement 42,48c32,33 < function heartBeat(args, output, _, dt) < args = parseArgs(args, { < moveTime = 0.2, < moveDelays = {left = 0, middle = 0.1, right = 0.2} < }) < < local moveTime = BData:getNumber(args.moveTime) + args.moveDelays.right --- > function heartBeat(args, board, _, dt) > local moveTime = args.moveTime + args.moveDelays.right 82,88c67 < function spawnMonsterGroup(args, output, _, dt) < args = parseArgs(args, { < offsetRegion = {-4, -14, 4, -4}, < windup = 1.5 < }) < < local windup = BData:getNumber(args.windup) --- > function spawnMonsterGroup(args, board, _, dt) 93c72 < local timer = windup --- > local timer = args.windup 114,122c93 < function eyeWiggle(args, output, _, dt) < args = parseArgs(args, { < time = 0.075, < rotation = 0.05 < }) < < local time = BData:getNumber(args.time) < local rotation = BData:getNumber(args.rotation) < --- > function eyeWiggle(args, board, _, dt) 125c96 < while timer < time do --- > while timer < args.time do 127c98 < local ratio = (time - timer) / time --- > local ratio = (args.time - timer) / args.time 129,131c100,102 < {0.25, interp.linear, 0, rotation}, < {0.75, interp.linear, rotation, -rotation}, < {1.0, interp.linear, -rotation, 0} --- > {0.25, interp.linear, 0, args.rotation}, > {0.75, interp.linear, args.rotation, -args.rotation}, > {1.0, interp.linear, -args.rotation, 0} 141,144c112 < function spawnLightShaft(args, output) < args = parseArgs(args, { < }) < --- > function spawnLightShaft(args, board) scripts\actions\boss\guardian.lua 7,15c7 < function spawnMinionGroup(args, output) < args = parseArgs(args, { < minions = {}, < spawnMin = "self", < spawnMax = "self" < }) < < local spawns = BData:getTable(args.minions) < local spawnMin, spawnMax = BData:getVec2(args.spawnMin), BData:getVec2(args.spawnMax) --- > function spawnMinionGroup(args, board) 17c9 < for _,minion in pairs(spawns) do --- > for _,minion in pairs(args.minions) do 24c16 < position = BData:getPosition(minion.position) --- > position = minion.position 31c23 < local spawnArea = rect.fromVec2(spawnMin, spawnMax) --- > local spawnArea = rect.fromVec2(args.spawnMin, args.spawnMax) 44c36 < util.run(0.25, function() pointHand("righthand", angle) end) --- > util.run(0.25, function() pointHand("righthand", angle) end, {minions = group}) 50d41 < BData:setList(output.minions, group) 55,56c46,47 < end) < util.run(0.25, function() pointHand("righthand", angle) end) --- > end, {minions = group}) > util.run(0.25, function() pointHand("righthand", angle) end, {minions = group}) 62c53 < return true --- > return true, {minions = group} 67,78c58,61 < function rotateGuardianHand(args, output) < args = parseArgs(args, { < handPart = "righthand", < offset = {0, 0}, < angle = 0 < }) < < local angle = BData:getNumber(args.angle) < local offset = BData:getVec2(args.offset) < pointHand(args.handPart, angle) < if offset then < animator.translateTransformationGroup(args.handPart, offset) --- > function rotateGuardianHand(args, board) > pointHand(args.handPart, args.angle) > if args.offset then > animator.translateTransformationGroup(args.handPart, args.offset) 92,110c75 < function guardianBeam(args, output, _, dt) < args = parseArgs(args, { < handPart = "righthand", < damagePart = "righthand", < beamType = "damage", < bounces = 0, < angle = 0, < offset = {0, 0}, < duration = 4, < power = 10, < maxLength = nil < }) < < local bounces = BData:getNumber(args.bounces) < local duration = BData:getNumber(args.duration) < local maxLength = BData:getNumber(args.maxLength) < local start = BData:getPosition(args.targetPosition) < local power = BData:getNumber(args.power) < --- > function guardianBeam(args, board, _, dt) 112c77 < local totalDuration = BeamWindup + duration + BeamWinddown --- > local totalDuration = BeamWindup + args.duration + BeamWinddown 114,115d78 < local angle = BData:getNumber(args.angle) < 120c83 < elseif timer > BeamWindup + duration then --- > elseif timer > BeamWindup + args.duration then 124,127c87,90 < handBeam(args.handPart, angle, frame, args.beamType, bounces, maxLength) < local offset = BData:getVec2(args.offset) < if offset then < animator.translateTransformationGroup(args.handPart, offset) --- > handBeam(args.handPart, args.angle, frame, args.beamType, args.bounces, args.maxLength) > > if args.offset then > animator.translateTransformationGroup(args.handPart, args.offset) 130c93 < if timer > BeamWindup and timer < BeamWindup + duration then --- > if timer > BeamWindup and timer < BeamWindup + args.duration then 148,165c111 < args = parseArgs(args, { < handPart = "righthand", < damagePart = "righthand", < beamType = "damage", < bounces = 0, < targetPosition = nil, < angularSpeed = 1, < duration = 1, < power = 10 < }) < < local angularSpeed = BData:getNumber(args.angularSpeed) < local bounces = BData:getNumber(args.bounces) < local windup = BData:getNumber(args.windup) < local duration = BData:getNumber(args.duration) < local start = BData:getPosition(args.targetPosition) < local power = BData:getNumber(args.power) < start = world.lineCollision(entity.position(), start) or start --- > local start = world.lineCollision(entity.position(), args.targetPosition) or args.targetPosition 172c118 < handBeam(args.handPart, angle, frame, args.beamType, bounces) --- > handBeam(args.handPart, angle, frame, args.beamType, args.bounces) 178c124 < timer = math.min(timer + dt, duration) --- > timer = math.min(timer + dt, args.duration) 180,182c126,127 < local newPosition = BData:getPosition(args.targetPosition) < local newAngle = vec2.angle(world.distance(newPosition, entity.position())) < angle = angle + (util.toDirection(util.angleDiff(angle, newAngle)) * angularSpeed * dt) --- > local newAngle = vec2.angle(world.distance(args.targetPosition, entity.position())) > angle = angle + (util.toDirection(util.angleDiff(angle, newAngle)) * args.angularSpeed * dt) 184c129 < handBeam(args.handPart, angle, frame, args.beamType, bounces) --- > handBeam(args.handPart, angle, frame, args.beamType, args.bounces) 188c133 < until timer == duration --- > until timer == args.duration 194c139 < handBeam(args.handPart, angle, frame, args.beamType, bounces) --- > handBeam(args.handPart, angle, frame, args.beamType, args.bounces) 198,200c143 < BData:setNumber(output.angle, angle) < < return true --- > return true, {angle = angle} 204,217c147 < function guardianStab(args, output, _, dt) < args = parseArgs(args, { < angle = 0, < offset = {0, 0}, < windup = 1.0, < windupLength = 5, < stabLength = 10 < }) < < local windup = BData:getNumber(args.windup) < local windupLength = BData:getNumber(args.windupLength) < local stabLength = BData:getNumber(args.stabLength) < local offset = BData:getVec2(args.offset) < --- > function guardianStab(args, board, _, dt) 221c151 < timer = math.min(timer + dt, windup) --- > timer = math.min(timer + dt, args.windup) 223,224c153 < angle = BData:getNumber(args.angle) < angle = vec2.angle({math.abs(math.cos(angle)), math.sin(angle)}) --- > angle = vec2.angle({math.abs(math.cos(args.angle)), math.sin(args.angle)}) 227,228c156,157 < animator.translateTransformationGroup("lefthand", vec2.add(offset, vec2.withAngle(angle + math.pi, math.sin((timer / windup) * math.pi / 2) * windupLength))) < if windup - timer < 0.1 then --- > animator.translateTransformationGroup("lefthand", vec2.add(args.offset, vec2.withAngle(angle + math.pi, math.sin((timer / args.windup) * math.pi / 2) * args.windupLength))) > if args.windup - timer < 0.1 then 232c161 < until timer >= windup --- > until timer >= args.windup 242,244c171,173 < local start = vec2.withAngle(angle + math.pi, windupLength) < local stabDistance = vec2.sub(vec2.withAngle(angle, stabLength), start) < animator.translateTransformationGroup("lefthand", vec2.add(offset, vec2.add(start, vec2.mul(stabDistance, timer / stabTime)))) --- > local start = vec2.withAngle(angle + math.pi, args.windupLength) > local stabDistance = vec2.sub(vec2.withAngle(angle, args.stabLength), start) > animator.translateTransformationGroup("lefthand", vec2.add(args.offset, vec2.add(start, vec2.mul(stabDistance, timer / stabTime)))) 249,265c178 < function guardianHandProjectile(args, output) < args = parseArgs(args, { < handPart = "righthand", < projectileType = "guardianpellet", < projectileParameters = {}, < projectileCount = 1, < aimPosition = nil, < fuzzAimPosition = 0, < fixedDistance = false, < fuzzAngle = 0, < fuzzSpeed = 0 < }) < < local aimPosition = BData:getPosition(args.aimPosition) < local projectileCount, fuzzAimPosition, fuzzAngle, fuzzSpeed = BData:getNumber(args.projectileCount), BData:getNumber(args.fuzzAimPosition), BData:getNumber(args.fuzzAngle), BData:getNumber(args.fuzzSpeed) < local fixedDistance = BData:getBool(args.fixedDistance) < local projectileParameters = BData:getTable(args.projectileParameters) --- > function guardianHandProjectile(args, board) 269,274c182,187 < local minMagnitude = fuzzAimPosition + vec2.mag(animator.partPoint(args.handPart, "projectileSource")) < for i = 1, projectileCount do < local params = copy(projectileParameters) < local magnitude = math.max(world.magnitude(aimPosition, entity.position()), minMagnitude) < local fuzzedPosition = vec2.add(entity.position(), vec2.withAngle(vec2.angle(world.distance(aimPosition, entity.position())), magnitude)) < fuzzedPosition = vec2.add(fuzzedPosition, vec2.withAngle(math.random() * math.pi * 2, math.sqrt(math.random()) * fuzzAimPosition)) --- > local minMagnitude = args.fuzzAimPosition + vec2.mag(animator.partPoint(args.handPart, "projectileSource")) > for i = 1, args.projectileCount do > local params = copy(args.projectileParameters) > local magnitude = math.max(world.magnitude(args.aimPosition, entity.position()), minMagnitude) > local fuzzedPosition = vec2.add(entity.position(), vec2.withAngle(vec2.angle(world.distance(args.aimPosition, entity.position())), magnitude)) > fuzzedPosition = vec2.add(fuzzedPosition, vec2.withAngle(math.random() * math.pi * 2, math.sqrt(math.random()) * args.fuzzAimPosition)) 277c190 < if fuzzAimPosition == 0 then --- > if args.fuzzAimPosition == 0 then 282c195 < local aimVector = vec2.withAngle(aimAngle + util.randomInRange({-fuzzAngle / 2, fuzzAngle / 2})) --- > local aimVector = vec2.withAngle(aimAngle + util.randomInRange({-args.fuzzAngle / 2, args.fuzzAngle / 2})) 287,288c200,201 < if fuzzSpeed then < projectileSpeed = projectileSpeed + util.randomInRange({-fuzzSpeed / 2, fuzzSpeed / 2}) --- > if args.fuzzSpeed then > projectileSpeed = projectileSpeed + util.randomInRange({-args.fuzzSpeed / 2, args.fuzzSpeed / 2}) 290c203 < if fixedDistance then --- > if args.fixedDistance then 292c205 < params.timeToLive = world.magnitude(aimPosition, sourcePosition) / projectileSpeed --- > params.timeToLive = world.magnitude(args.aimPosition, sourcePosition) / projectileSpeed 335c248 < mcontroller.controlFly(vec2.mul(vec2.norm(toTarget), mcontroller.baseParameters().flySpeed)) --- > mcontroller.controlFly(toTarget) 338,349c251,254 < function guardianApproach(args, output, _, dt) < args = parseArgs(args, { < position = nil, < outerRange = 1, < innerRange = 0 < }) < < local position = BData:getPosition(args.position) < local outerRange, innerRange = BData:getNumber(args.outerRange), BData:getNumber(args.innerRange) < < local mag = world.magnitude(position, entity.position()) < if mag > outerRange or mag < innerRange then --- > function guardianApproach(args, board, _, dt) > local mag = world.magnitude(args.position, entity.position()) > if mag > args.outerRange or mag < args.innerRange then > local outerRange, innerRange = args.outerRange, args.innerRange 352c257 < outerRange = innerRange + ((outerRange - innerRange) / 2) --- > outerRange = args.innerRange + ((args.outerRange - args.innerRange) / 2) 354c259 < innerRange = outerRange - ((outerRange - innerRange) / 2) --- > innerRange = args.outerRange - ((args.outerRange - args.innerRange) / 2) 356c261 < local goalRange = mag > outerRange and outerRange or innerRange --- > local goalRange = mag > innerRange and innerRange or innerRange 361c266 < approachFly(position, innerRange) --- > approachFly(args.position, innerRange) 365,366c270 < position = BData:getPosition(args.position) < mag = world.magnitude(position, entity.position()) --- > mag = world.magnitude(args.position, entity.position()) scripts\actions\boss\kluexboss.lua 11,29c11,12 < function spawnFloorProjectiles(args, output) < args = parseArgs(args, { < center = "self", < areaWidth = 20, < projectileCount = 3, < segmentWidth = 4, < power = 10, < projectileType = "iceeruptiontele", < spawnHeight = 0, < timeToLive = nil < }) < < local areaWidth = BData:getNumber(args.areaWidth) < local projectileCount = BData:getNumber(args.projectileCount) < local position = BData:getPosition(args.center) < local power = BData:getNumber(args.power) * root.evalFunction("monsterLevelPowerMultiplier", monster.level()) < local segmentWidth = BData:getNumber(args.segmentWidth) < local spawnHeight = BData:getNumber(args.spawnHeight) < local timeToLive = BData:getNumber(args.timeToLive) --- > function spawnFloorProjectiles(args, board) > local power = args.power * root.evalFunction("monsterLevelPowerMultiplier", monster.level()) 31c14 < local segmentCount = math.floor(areaWidth / segmentWidth) --- > local segmentCount = math.floor(args.areaWidth / args.segmentWidth) 33c16 < for i = 1, projectileCount do --- > for i = 1, args.projectileCount do 36c19 < for i = 1, segmentCount - projectileCount do --- > for i = 1, segmentCount - args.projectileCount do 41,43c24,26 < local start = vec2.add(position, {-areaWidth / 2, 0}) < local groundLevel = world.collisionBlocksAlongLine(position, vec2.add(position, {0, -50}))[1][2] + 1.0 < local ids = {} --- > local start = vec2.add(args.center, {-args.areaWidth / 2, 0}) > local groundLevel = world.collisionBlocksAlongLine(args.center, vec2.add(args.center, {0, -50}))[1][2] + 1.0 > local projectiles = {} 46,47c29,30 < local spawnPosition = vec2.add(start, {i * segmentWidth - (segmentWidth / 2), 0}) < spawnPosition[2] = groundLevel + spawnHeight --- > local spawnPosition = vec2.add(start, {i * args.segmentWidth - (args.segmentWidth / 2), 0}) > spawnPosition[2] = groundLevel + args.spawnHeight 50c33 < timeToLive = timeToLive --- > timeToLive = args.timeToLive 53c36 < table.insert(ids, projectileId) --- > table.insert(projectiles, projectileId) 56d38 < BData:setList(output.projectiles, ids) 58c40 < return true --- > return true, {projectiles = projectiles} 68,85c50,56 < function spawnPillarPlatforms(args, output) < args = parseArgs(args, { < center = "self", < areaWidth = 20, < projectileType = "pillarplatform", < pillarCount = 3, < pillarHeight = 4 < }) < local center = BData:getPosition(args.center) < local areaWidth = BData:getNumber(args.areaWidth) < local pillarCount = BData:getNumber(args.pillarCount) < local pillarHeight = BData:getNumber(args.pillarHeight) < if center == nil or areaWidth == nil or pillarCount == nil then return false end < < local groundBlock = world.collisionBlocksAlongLine(center, vec2.add(center, {0, -50}))[1] < local projectileSpawnLevel = groundBlock[2] + 1.0 - (pillarHeight / 2) < local start = {center[1] - areaWidth / 2, projectileSpawnLevel} < local spacing = areaWidth / (pillarCount + 1) --- > function spawnPillarPlatforms(args, board) > if args.center == nil or args.areaWidth == nil or args.pillarCount == nil then return false end > > local groundBlock = world.collisionBlocksAlongLine(args.center, vec2.add(args.center, {0, -50}))[1] > local projectileSpawnLevel = groundBlock[2] + 1.0 - (args.pillarHeight / 2) > local start = {args.center[1] - args.areaWidth / 2, projectileSpawnLevel} > local spacing = args.areaWidth / (args.pillarCount + 1) 88c59 < for i = 1, pillarCount do --- > for i = 1, args.pillarCount do 93d63 < BData:setList(output.pillars, ids) 95c65 < return true --- > return true, {pillars = ids} scripts\actions\monsters\farmable.lua 29,32c29 < function hasMonsterHarvest(args, output) < args = parseArgs(args, { < }) < --- > function hasMonsterHarvest(args, board) 44,47c41 < function dropMonsterHarvest(args, output) < args = parseArgs(args, { < }) < --- > function dropMonsterHarvest(args, board) 57c51 < end \ No newline at end of file --- > end scripts\actions\npc\tonauac.lua 1,14c1,2 < function blessPlayer(args, output) < args = parseArgs(args, { < entity = nil, < blessings = {}, < duration = 1800, < rotation = 86400 < }) < < local entityId = BData:getEntity(args.entity) < local blessings = BData:getList(args.blessings) < local duration = BData:getNumber(args.duration) < local rotation = BData:getNumber(args.rotation) < local seed = math.floor(os.time() / rotation) < --- > function blessPlayer(args, board) > local seed = math.floor(os.time() / args.rotation) 16,17c4,6 < local blessing = blessings[math.random(1,#blessings)] < world.sendEntityMessage(entityId, "applyStatusEffect", blessing, duration, entity.id()); --- > > local blessing = args.blessings[math.random(1,#blessings)] > world.sendEntityMessage(args.entity, "applyStatusEffect", blessing, args.duration, entity.id()); scripts\behavior\bdata.lua 3,18c3,11 < ----------------------------------------------------------- < -- BLACKBOARD < ----------------------------------------------------------- < < BData = { < board = {}, < types = { < "entity", < "position", < "vec2", < "number", < "bool", < "table" < }, < controls = {}, -- controls < debug = false --- > DataTypes = { > "entity", > "position", > "vec2", > "number", > "bool", > "list", > "table", > "string" 21,218c14,21 < function BData:hasType(typeString) < for _,valueType in ipairs(self.types) do < if valueType == typeString then < return true < end < end < return false < end < < function BData:set(typeName, key, value) < self.board[typeName] = self.board[typeName] or {} < if key == nil then return false end < self.board[typeName][key] = value < end < < function BData:get(typeName, key) < if type(key) ~= "string" then return key end < self.board[typeName] = self.board[typeName] or {} < return self.board[typeName][key] < end < < function BData:control(typeName, key, value) < self.controls[typeName] = self.controls[typename] or {} < self.controls[typeName][key] = true < return self:set(typeName, key, value) < end < < function BData:clearControls() < for typeName,controls in pairs(self.controls) do < self.controls[typeName] = util.map(controls, function() return false end) < end < end < < function BData:update() < -- remove controls set to false from the board < for typeName,controls in pairs(self.controls) do < for k,v in pairs(controls) do < if v == false then < self:set(typeName, k, nil) < controls[k] = nil < end < end < end < end < < function BData:setNumber(key, number) < self:set("number", key, number) < end < < function BData:getNumber(key) < if type(key) == "number" then < return key < else < return self:get("number", key) < end < end < < function BData:setEntity(key, entityId) < self:set("entity", key, entityId) < end < < function BData:getEntity(key) < if key == "self" then < return entity.id() < else < local entityId = nil < if type(key) == "number" then < entityId = key < else < entityId = self:get("entity", key) < end < if entityId and not self.debug and not world.entityExists(entityId) then < return nil < end < return entityId < end < end < < function BData:setBool(key, vector) < self:set("bool", key, vector) < end < < function BData:getBool(key) < if type(key) == "boolean" then < return key < else < return self:get("bool", key) < end < end < < function BData:setVec2(key, vector) < self:set("vec2", key, vector) < end < < function BData:getVec2(key) < if type(key) == "table" then < return {BData:getNumber(key[1]), BData:getNumber(key[2])} < else < return self:get("vec2", key) < end < end < < function BData:setPosition(key, position) < self:set("position", key, position) < end < < function BData:getPosition(key) < if type(key) == "table" then < return key < elseif key == "self" then < return mcontroller.position() < else < return self:get("position", key) < end < end < < function BData:getTable(key) < if type(key) == "table" then < return key < else < return self:get("table", key) < end < end < < function BData:setTable(key, behavior) < self:set("table", key, behavior) < end < < function BData.findType(args) < for k,v in pairs(args) do < if BData:hasType(k) then < return k,v < end < end < end < < function BData:getList(listKey) < self.lists = self.lists or {} < if type(listKey) == "table" then < return listKey < else < return self.lists[listKey] or {} < end < end < < function BData:setList(listKey, list) < self.lists = self.lists or {} < if listKey == nil then return false end < self.lists[listKey] = list < return true < end < < function BData:pushList(listKey, value) < self.lists = self.lists or {} < self.lists[listKey] = self.lists[listKey] or {} < table.insert(self.lists[listKey], 1, value) < return true < end < < function BData:pushBackList(listKey, value) < self.lists = self.lists or {} < self.lists[listKey] = self.lists[listKey] or {} < table.insert(self.lists[listKey], value) < return true < end < < function BData:popList(listKey) < self.lists = self.lists or {} < self.lists[listKey] = self.lists[listKey] or {} < if self.lists[listKey][1] then < local value = self.lists[listKey][1] < table.remove(self.lists[listKey], 1) < return value < end < end < < function BData:peekList(listKey) < self.lists = self.lists or {} < self.lists[listKey] = self.lists[listKey] or {} < if self.lists[listKey][1] then < return self.lists[listKey][1] < end < end < < function BData:clearList(listKey) < self.lists = self.lists or {} < self.lists[listKey] = {} < return true < end < < function BData:inList(listKey, value) < self.lists = self.lists or {} < self.lists[listKey] = self.lists[listKey] or {} < for _,v in ipairs(self.lists[listKey]) do < if v == value then return true end < end < return false < end --- > ListTypes = { > "entity", > "position", > "vec2", > "number", > "bool", > "string" > } 223,225c26,28 < function setFlag(args, output) < args = parseArgs(args, {}) < BData:set("bool", args.name, true) --- > -- This should really just have an output > function setFlag(args, board) > board:setBool(args.name, true) 230,232c33,35 < function unsetFlag(args, output) < args = parseArgs(args, {}) < BData:set("bool", args.name, false) --- > -- This should really just have an output > function unsetFlag(args, board) > board:setBool(args.name, false) 236,239c39,40 < function controlFlag(args, output) < args = parseArgs(args, {}) < BData:control("bool", args.name, true) < return true --- > function controlFlag(args, board) > return true, {bool = args.bool} 243,249c44,45 < function hasFlag(args, output) < args = parseArgs(args, {}) < return BData:get("bool", args.name) == true < end < < function clearAllFlags(args) < BData.board.bool = {} --- > function hasFlag(args, board) > return args.name == true 256,264c52,61 < -- param vector < function listPush(args, output) < args = parseArgs(args, { < list = nil < }) < local getType,index = BData.findType(args) < local value = type(index) ~= "string" and index or BData:get(getType, index) < if value == nil then return false end < return BData:pushList(args.list, value) --- > -- param vec2 > function listPush(args, board) > local list = args.list or jarray() > for _,type in pairs(ListTypes) do > if args[type] then > table.insert(list, args[type]) > return true, {list = list} > end > end > return false, {list = list} 272,279c69,77 < function listPushBack(args, output) < args = parseArgs(args, { < list = nil < }) < local getType,index = BData.findType(args) < local value = type(index) ~= "string" and index or BData:get(getType, index) < if value == nil then return false end < return BData:pushBackList(args.list, value) --- > function listPushBack(args, board) > local list = args.list or jarray() > for _,type in pairs(ListTypes) do > if args[type] then > table.insert(list, 1, args[type]) > return true, {list = list} > end > end > return false, {list = list} 287,291c85,87 < function listPop(args, output) < args = parseArgs(args, { < list = nil < }) < local value = BData:popList(args.list) --- > function listPop(args, board) > local list = args.list or jarray() > local value = list[#list] 293,298c89,90 < < local setType,index = BData.findType(output) < if setType then < BData:set(setType, index, value) < end < return true --- > table.remove(list) > return true, {list = list, entity = value, number = value, position = value, vector = value} 306,310c98,100 < function listGet(args, output) < args = parseArgs(args, { < list = nil < }) < local value = BData:peekList(args.list) --- > function listGet(args, board) > local list = args.list or jarray() > local value = list[#list] 312,317c102 < < local setType,index = BData.findType(output) < if setType then < BData:set(setType, index, value) < end < return true --- > return true, {entity = value, number = value, position = value, vector = value} 322,332c107,109 < function listSize(args, output) < args = parseArgs(args, { < list = nil < }) < local list = BData:getList(args.list) < if list == nil then return false end < < if output.number then < BData:setNumber(output.number, #list) < end < return true --- > function listSize(args, board) > if args.list == nil then return false end > return true, {number = #args.list} 338,347c115,116 < args = parseArgs(args, { < list = nil < }) < local list = BData:getList(args.list) < if list == nil then return false end < < if output.list then < BData:setList(output.list, shuffled(list)) < end < return true --- > if args.list == nil then return false end > return true, {list = shuffled(args.list)} 353,357c122 < args = parseArgs(args, { < list = nil < }) < local list = BData:getList(args.list) < if list == nil then return false end --- > if args.list == nil then return false end 360c125 < for _,v in pairs(list) do --- > for _,v in pairs(args.list) do 364,365c129 < BData:setList(output.list, reversed) < return true --- > return true, {list = reversed} 374,379c138,148 < args = parseArgs(args, { < list = nil < }) < local getType,index = BData.findType(args) < local value = BData:get(getType, index) < return BData:inList(args.list, value) --- > if args.list == nil or #args.list == 0 then > return false > end > for _,type in pairs(ListTypes) do > if args[type] then > if contains(args.list, args[type]) then > return true > end > end > end > return false 384,387c153 < args = parseArgs(args, { < list = nil < }) < return BData:clearList(args.list) --- > return true, {list = jarray()} 393,398c159 < args = parseArgs(args, { < entity = "self", < }) < < BData:setEntity(output.entity, BData:getEntity(args.entity)) < return true --- > return true, {entity = args.entity} 402c163 < -- output entity --- > -- output entity ephemeral 404,406c165 < args = parseArgs(args, {}) < BData:control("entity", output.entity, BData:getEntity(args.entity)) < return true --- > return true, {entity = args.entity} 412,420c171,172 < args = parseArgs(args, { < number = 0 < }) < < local number = BData:getNumber(args.number) < if number == nil then return false end < < BData:setNumber(output.number, BData:getNumber(args.number)) < return true --- > if args.number == nil then return false end > return true, {number = args.number} 426,442c178,179 < args = parseArgs(args, { < position = nil < }) < < local pos = BData:getPosition(args.position) < if pos == nil then return false end < < BData:setPosition(output.position, copy(pos)) < return true < end < < -- param number < -- output number < function controlNumber(args, output) < args = parseArgs(args, {}) < BData:control("number", output.number, BData:getNumber(args.number)) < return true --- > if args.pos == nil then return false end > return true, {position = pos} 448,456c185,186 < args = parseArgs(args, { < vector = 0 < }) < < local vector = BData:getVec2(args.vector) < if vector == nil then return false end < < BData:setVec2(output.vector, BData:getVec2(args.vector)) < return true --- > if args.vector == nil then return false end > return true, {vector = args.vector} 463,472c193,194 < args = parseArgs(args, { < vector = nil < }) < < local vector = BData:getVec2(args.vector) < if vector == nil then return false end < < BData:setNumber(output.x, vector[1]) < BData:setNumber(output.y, vector[2]) < return true --- > if args.vector == nil then return false end > return true, {x = args.vector[1], y = args.vector[2]} 475,479c197,199 < function unset(args) < args = parseArgs(args, { < type = nil, < key = nil < }) --- > -- param type > -- param key > function unset(args, board) 481,482c201 < < BData:set(args.type, args.key, nil) --- > board:set(args.type, args.key, nil) 485a205 > -- param table 487,491c207 < args = parseArgs(args, { < table = nil < }) < BData:setTable(output.table, BData:getTable(args.table)) < return true --- > return true, {table = args.table} scripts\behavior\bgroup.lua 18c18,22 < sb.logInfo("Cannot get position for goal type \"list\"") --- > local sum = {0, 0} > for _,entityId in pairs(goal) do > sum = vec2.add(sum, world.entityPosition(entityId)) > end > return vec2.div(sum, #goal) 144,152d147 < function BGroup:parseGoal(goalType, goal) < if goalType == "entity" then < return BData:getEntity(goal) < elseif goalType == "position" then < return BData:getPosition(goal) < elseif goalType == "list" then < return BData:getList(goal) < end < end 158,162c153,162 < function group(args, output) < args = parseArgs(args, { < unique = false < }) < local unique = BData:getBool(args.unique) --- > function group(args, board) > local groupId = args.groupId > local goal = board:get(args.goalType, args.goal) > if groupId == nil and args.goalType == "list" then > groupId = "list-" > for _,v in pairs(goal) do > groupId = string.format("%s-%s", groupId, v) > end > end > 164c164 < groupId = args.groupId, --- > groupId = groupId, 171c171 < group.goal = BGroup:parseGoal(group.goalType, args.goal) --- > group.goal = goal 175d174 < local position = BData:getPosition(args.position) 177c176 < local groupResult = BGroup:joinGroup(group, position, unique) --- > local groupResult = BGroup:joinGroup(group, args.position, args.unique) 180c179 < return true --- > return true, {groupId = group.groupId} 183c182 < return groupResult == true --- > return groupResult == true, {groupId = group.groupId} 186,190c185,186 < function succeedGroup(args, output) < args = parseArgs(args, { < groupId = nil < }) < --- > -- param groupId > function succeedGroup(args, board) 195,202c191,195 < function task(args, output) < args = parseArgs(args, { < groupId = nil, < taskId = nil, < minMembers = nil, < maxMembers = nil < }) < --- > -- param groupId > -- param taskId > -- param minMembers > -- param maxMembers > function task(args, board) species\backernamegen.config 3876c3876,3877 < "David W. DuBois" --- > "David W. DuBois", > "Hyanar" species\humanfemalenamegen.config 6c6 < [ { "mode" : "alts" }, "Abi", "Addison", "Agnes", "Alex", "Alexis", "Alice", "Alysia", "Amity", "Anka", "Anne", "Annice", "Angel", "Annie", "Ariel", "Ashley", "Astra", "Bailey", "Bianka", "Beatriz", "Bee", "Betty", "Blair", "Bobbie", "Carina", "Carla", "Carmen", "Carmine", "Cassie", "Celeste", "Chelle", "Chiara", "Chrisjen", "Cindy", "Daisy", "Dakota", "Dallas", "Daphne", "Darija", "Dawn", "Delia", "Demi", "Devon", "Donna", "Doris", "Ecrin", "Elaine", "Elara", "Ellen", "Emilia", "Emma", "Elsa", "Erin", "Estelle", "Ethna", "Eva", "Evren", "Freya", "Frankie", "Gala", "Gem", "Georgi", "Gerry", "Gina", "Goldie", "Greta", "Gul", "Hadley", "Harriet", "Harley", "Hayley", "Hiba", "Hilda", "Ibbie", "Ida", "Idril", "Inga", "Ira", "Iris", "Irma", "Isolde", "Jeong", "Jaki", "Jantine", "Jazmin", "Jessie", "Jodi", "June", "Jude", "Karin", "Kata", "Kelly", "Kelsey", "Kiki", "Kleio", "Laurie", "Layla", "Leah", "Lenna", "Lili", "Linda", "Lindsay", "Linn", "Lonnie", "Lorene", "Lorette", "Lorna", "Lucy", "Luna", "Lyra", "Malina", "Mallory", "Mara", "Margo", "Mariel", "Marisa", "Maya", "Maytal", "Mette", "Mila", "Milka", "Mimi", "Mina", "Mira", "Misty", "Moira", "Molly", "Montana", "Morgan", "Nalani", "Nasim", "Nell", "Neske", "Neva", "Nevada", "Nona", "Norah", "Olga", "Paris", "Payton", "Peony", "Pia", "Quinn", "Rakel", "Reed", "Remi", "Rene", "Rima", "Rita", "Robin", "Rosa", "Rosie", "Rue", "Saga", "Saige", "Samara", "Sara", "Scout", "Selma", "Shana", "Shay", "Sigrun", "Sita", "Shelby", "Sitara", "Skylar", "Sunny", "Suri", "Suzette", "Sydney", "Star", "Stormy", "Tania", "Taylor", "Tegan", "Telma", "Thyra", "Ursa", "Vera", "Vivi", "Vardah", "Wanda", "Wendy", "Yulia", "Zaray", "Ziv", "Zlata", "Zoe", "Zora" ] --- > [ { "mode" : "alts" }, "Abi", "Addison", "Adria", "Agnes", "Alex", "Alexis", "Alice", "Alysia", "Amity", "Anka", "Anne", "Annice", "Angel", "Annie", "Ariel", "Ashley", "Astra", "Bailey", "Bianka", "Beatriz", "Bee", "Betty", "Blair", "Bobbie", "Carina", "Carla", "Carmen", "Carmine", "Cassie", "Celeste", "Chelle", "Chiara", "Chrisjen", "Cindy", "Daisy", "Dakota", "Dallas", "Daphne", "Darija", "Dawn", "Delia", "Demi", "Devon", "Donna", "Doris", "Ecrin", "Elaine", "Elara", "Ellen", "Emilia", "Emma", "Elsa", "Erin", "Estelle", "Ethna", "Eva", "Evren", "Freya", "Frankie", "Gala", "Gem", "Georgi", "Gerry", "Gina", "Goldie", "Greta", "Gul", "Hadley", "Harriet", "Harley", "Hayley", "Hiba", "Hilda", "Ibbie", "Ida", "Idril", "Inga", "Ira", "Iris", "Irma", "Isolde", "Jeong", "Jaki", "Jantine", "Jazmin", "Jessie", "Jodi", "June", "Jude", "Karin", "Kata", "Kelly", "Kelsey", "Kiki", "Kleio", "Laurie", "Layla", "Leah", "Lenna", "Lili", "Linda", "Lindsay", "Linn", "Lonnie", "Lorene", "Lorette", "Lorna", "Lucy", "Luna", "Lyra", "Malina", "Mallory", "Mara", "Margo", "Mariel", "Marisa", "Maya", "Maytal", "Mercia","Mette", "Mila", "Milka", "Mimi", "Mina", "Mira", "Misty", "Moira", "Molly", "Montana", "Morgan", "Nalani", "Nasim", "Nell", "Neske", "Neva", "Nevada", "Nona", "Norah", "Olga", "Paris", "Payton", "Peony", "Pia", "Quinn", "Rakel", "Reed", "Remi", "Rene", "Rima", "Rita", "Robin", "Rosa", "Rosie", "Rue", "Saga", "Saige", "Samara", "Sara", "Scout", "Selma", "Shana", "Shay", "Sigrun", "Sita", "Shelby", "Sitara", "Skylar", "Sunny", "Suri", "Suzette", "Sydney", "Star", "Stormy", "Tania", "Taylor", "Tegan", "Telma", "Thyra", "Ursa", "Vera", "Vivi", "Vardah", "Wanda", "Wendy", "Yulia", "Zaray", "Ziv", "Zlata", "Zoe", "Zora" ] species\penguinoid.config 4,7c4 < // Offset applied to all pieces. Half a pixel up to correct for the humanoid < // frames being an odd number of pixels, so the bottom of the collision poly < // would otherwise be not at a whole pixel boundary. < "globalOffset" : [0.0, 0.5], --- > "globalOffset" : [0, 0], stagehands\coordinator.lua 27,28c27 < self.behavior = root.behavior(config.getParameter("behavior"), config.getParameter("behaviorConfig", {})) < self.behaviorState = self.behavior:init(_ENV) --- > self.behavior = behavior.behavior(config.getParameter("behavior"), config.getParameter("behaviorConfig", {}), _ENV) 39c38 < self.behavior:run(self.behaviorState, dt) --- > self.behavior:run(dt) 121c120 < if not inList(self.goal, value) then --- > if not contains(self.goal, value) then stagehands\bossplanner\bossabilities\miniontriggergroup.bossability 27c27 < "minionGroup" : "triggerMinions" --- > "minionGroup" : {"key": "triggerMinions"} stagehands\bossplanner\bossabilities\spawnminiongroup.bossability 63c63 < "minionGroup" : "minions" --- > "minionGroup" : {"key" : "minions"} stats\fishing_primary.lua 4,5d3 < self.worldBottomDeathLevel = 5 < 46c44 < if mcontroller.position()[2] < self.worldBottomDeathLevel then --- > if mcontroller.atWorldLimit() then stats\monster_primary.lua 6,7d5 < self.worldBottomDeathLevel = 5 < 34,39c32,37 < local elementalStat = root.elementalResistance(damageRequest.damageSourceKind) < local resistance = status.stat(elementalStat) < damage = damage - (resistance * damage) < if resistance ~= 0 and damage > 0 then < hitType = resistance > 0 and "weakhit" or "stronghit" < end --- > local elementalStat = root.elementalResistance(damageRequest.damageSourceKind) > local resistance = status.stat(elementalStat) > damage = damage - (resistance * damage) > if resistance ~= 0 and damage > 0 then > hitType = resistance > 0 and "weakhit" or "stronghit" > end 115c113 < if mcontroller.position()[2] < self.worldBottomDeathLevel then --- > if mcontroller.atWorldLimit(true) then stats\npc_primary.lua 5,6d4 < self.worldBottomDeathLevel = 5 < 128c126 < if mcontroller.position()[2] < self.worldBottomDeathLevel then --- > if mcontroller.atWorldLimit(true) then stats\player_primary.lua 12,13d11 < self.worldBottomDeathLevel = 5 < 108d105 < 230c227 < if mcontroller.position()[2] < self.worldBottomDeathLevel then --- > if mcontroller.atWorldLimit(true) then stats\effects\biomeairless\biomeairless.lua 2d1 < sb.logInfo("Queue radio message for airless") 10c9 < end \ No newline at end of file --- > end stats\effects\levitation\levitation.lua 104c104 < collisionSet = {"Null", "Block", "Dynamic"} --- > collisionSet = {"Null", "Block", "Dynamic", "Slippery"} tech\dash\blinkdash.lua 100c100 < if not world.polyCollision(collisionPoly, testPos, {"Null", "Block", "Dynamic"}) then --- > if not world.polyCollision(collisionPoly, testPos, {"Null", "Block", "Dynamic", "Slippery"}) then 107c107 < if not world.polyCollision(collisionPoly, oneUp, {"Null", "Block", "Dynamic"}) then --- > if not world.polyCollision(collisionPoly, oneUp, {"Null", "Block", "Dynamic", "Slippery"}) then tech\dash\dash.lua 28a29,30 > > animator.setAnimationState("dashing", "off") 60c62 < mcontroller.controlParameters({gravityEnabled = false}) --- > mcontroller.setYVelocity(0) 64c66 < animator.setFlipped(mcontroller.facingDirection() == -1) --- > animator.setFlipped(mcontroller.facingDirection() == -1) tech\distortionsphere\aquasphere.lua 12c12 < if not self.specialLast and args.moves["special"] == 1 then --- > if not self.specialLast and args.moves["special1"] then 15c15 < self.specialLast = args.moves["special"] == 1 --- > self.specialLast = args.moves["special1"] 17c17 < if args.moves["special"] ~= 1 then --- > if not args.moves["special1"] then tech\distortionsphere\distortionsphere.lua 21c21 < self.collisionSet = {"Null", "Block", "Dynamic"} --- > self.collisionSet = {"Null", "Block", "Dynamic", "Slippery"} 35c35 < if not self.specialLast and args.moves["special"] == 1 then --- > if not self.specialLast and args.moves["special1"] then 38c38 < self.specialLast = args.moves["special"] == 1 --- > self.specialLast = args.moves["special1"] 40c40 < if args.moves["special"] ~= 1 then --- > if not args.moves["special1"] then tech\distortionsphere\sonicsphere.lua 31c31 < if not self.specialLast and args.moves["special"] == 1 then --- > if not self.specialLast and args.moves["special1"] then 38c38 < self.specialLast = args.moves["special"] == 1 --- > self.specialLast = args.moves["special1"] 40c40 < if args.moves["special"] ~= 1 then --- > if not args.moves["special1"] then tech\distortionsphere\spikesphere.lua 35c35 < if not self.specialLast and args.moves["special"] == 1 then --- > if not self.specialLast and args.moves["special1"] then 38c38 < self.specialLast = args.moves["special"] == 1 --- > self.specialLast = args.moves["special1"] 40c40 < if args.moves["special"] ~= 1 then --- > if not args.moves["special1"] then tech\jump\multijump.lua 42a43 > and math.abs(world.gravity(mcontroller.position())) > 0 tiles\classicmaterialtemplate.config 2a3,7 > "fullShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [64, 0] > }, 283a289,292 > }, > { > "matchAllPoints" : [[[0, 0], "Shadows"]], > "pieces" : [["fullShadow", [0, 0]]] tiles\columntemplate.config 2a3,48 > "fullShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [64, 0] > }, > "topShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [0, 0] > }, > "leftShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [8, 0] > }, > "bottomShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [16, 0] > }, > "rightShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [24, 0] > }, > "topLeftShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [32, 0] > }, > "topRightShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [40, 0] > }, > "bottomLeftShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [48, 0] > }, > "bottomRightShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [56, 0] > }, > 25a72,78 > }, > > "icon" : { > "textureSize" : [8, 8], > "texturePosition" : [2, 38], > "colorStride" : [12, 0], > "variantStride" : [0, 48] 29c82 < "representativePiece": "single", --- > "representativePiece": "icon", 60a114,128 > }, > "Shadows" : { > "entries" : [ > { > "type" : "Shadows" > } > ] > }, > "NotShadows" : { > "entries" : [ > { > "type" : "Shadows", > "inverse" : true > } > ] 67,88c135,197 < "matchAllPoints" : [ < [[0, 1], "NotEqualsSelf"], < [[0, -1], "EqualsSelf"] < ], < "haltOnMatch" : true, < "pieces" : [["top", [-2, -2]]] < }, < { < "matchAllPoints" : [ < [[0, 1], "EqualsSelf"], < [[0, -1], "EqualsSelf"] < ], < "haltOnMatch" : true, < "pieces" : [["center", [-2, -2]]] < }, < { < "matchAllPoints" : [ < [[0, 1], "EqualsSelf"], < [[0, -1], "NotEqualsSelf"] < ], < "haltOnMatch" : true, < "pieces" : [["bottom", [-2, -2]]] --- > "subMatches" : [ > { > "matchAllPoints" : [ > [[0, 1], "NotEqualsSelf"], > [[0, -1], "EqualsSelf"] > ], > "haltOnMatch" : true, > "pieces" : [["top", [-2, -2]]] > }, > { > "matchAllPoints" : [ > [[0, 1], "EqualsSelf"], > [[0, -1], "EqualsSelf"] > ], > "haltOnMatch" : true, > "pieces" : [["center", [-2, -2]]] > }, > { > "matchAllPoints" : [ > [[0, 1], "EqualsSelf"], > [[0, -1], "NotEqualsSelf"] > ], > "haltOnMatch" : true, > "pieces" : [["bottom", [-2, -2]]] > }, > { > "pieces" : [["single", [-2, -2]]] > } > ] > }, > > // SHADOWS > { > "matchAllPoints" : [[[0, 0], "Shadows"]], > "pieces" : [["fullShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[0, 1], "Shadows"]], > "pieces" : [["topShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[-1, 0], "Shadows"]], > "pieces" : [["leftShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[0, -1], "Shadows"]], > "pieces" : [["bottomShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[1, 0], "Shadows"]], > "pieces" : [["rightShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[-1, 1], "Shadows"], [[0, 1], "NotShadows"], [[-1, 0], "NotShadows"]], > "pieces" : [["topLeftShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[1, 1], "Shadows"], [[0, 1], "NotShadows"], [[1, 0], "NotShadows"]], > "pieces" : [["topRightShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[-1, -1], "Shadows"], [[0, -1], "NotShadows"], [[-1, 0], "NotShadows"]], > "pieces" : [["bottomLeftShadow", [0, 0]]] 91c200,201 < "pieces" : [["single", [-2, -2]]] --- > "matchAllPoints" : [[[1, -1], "Shadows"], [[0, -1], "NotShadows"], [[1, 0], "NotShadows"]], > "pieces" : [["bottomRightShadow", [0, 0]]] tiles\girdertemplate.config 2a3,48 > "fullShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [64, 0] > }, > "topShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [0, 0] > }, > "leftShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [8, 0] > }, > "bottomShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [16, 0] > }, > "rightShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [24, 0] > }, > "topLeftShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [32, 0] > }, > "topRightShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [40, 0] > }, > "bottomLeftShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [48, 0] > }, > "bottomRightShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [56, 0] > }, > 37a84,90 > }, > > "icon" : { > "textureSize" : [8, 8], > "texturePosition" : [11, 1], > "colorStride" : [0, 10], > "variantStride" : [20, 0] 41c94 < "representativePiece": "horizontal", --- > "representativePiece": "icon", 72a126,140 > }, > "Shadows" : { > "entries" : [ > { > "type" : "Shadows" > } > ] > }, > "NotShadows" : { > "entries" : [ > { > "type" : "Shadows", > "inverse" : true > } > ] 79,83d146 < "matchAnyPoints" : [ < [[1, 0], "EqualsSelf"], < [[-1, 0], "EqualsSelf"] < ], < "haltOnSubMatch" : true, 86c149,170 < "pieces" : [["horizontal", [0, -1]]] --- > "matchAnyPoints" : [ > [[1, 0], "EqualsSelf"], > [[-1, 0], "EqualsSelf"] > ], > "haltOnSubMatch" : true, > "subMatches" : [ > { > "pieces" : [["horizontal", [0, -1]]] > }, > { > "matchAllPoints" : [ > [[-1, 0], "NotEqualsSelf"] > ], > "pieces" : [["leftcap", [-1, -1]]] > }, > { > "matchAllPoints" : [ > [[1, 0], "NotEqualsSelf"] > ], > "pieces" : [["rightcap", [8, -1]]] > } > ] 89,90c173,175 < "matchAllPoints" : [ < [[-1, 0], "NotEqualsSelf"] --- > "matchAnyPoints" : [ > [[0, 1], "EqualsSelf"], > [[0, -1], "EqualsSelf"] 92c177,194 < "pieces" : [["leftcap", [-1, -1]]] --- > "haltOnSubMatch" : true, > "subMatches" : [ > { > "pieces" : [["vertical", [-1, 0]]] > }, > { > "matchAllPoints" : [ > [[0, -1], "NotEqualsSelf"] > ], > "pieces" : [["topcap", [-1, -1]]] > }, > { > "matchAllPoints" : [ > [[0, 1], "NotEqualsSelf"] > ], > "pieces" : [["bottomcap", [-1, 8]]] > } > ] 95,98c197,201 < "matchAllPoints" : [ < [[1, 0], "NotEqualsSelf"] < ], < "pieces" : [["rightcap", [8, -1]]] --- > "pieces" : [ > ["vertical", [-1, 0]], > ["topcap", [-1, -1]], > ["bottomcap", [-1, 8]] > ] 101a205,206 > > // SHADOWS 103,124c208,209 < "matchAnyPoints" : [ < [[0, 1], "EqualsSelf"], < [[0, -1], "EqualsSelf"] < ], < "haltOnSubMatch" : true, < "subMatches" : [ < { < "pieces" : [["vertical", [-1, 0]]] < }, < { < "matchAllPoints" : [ < [[0, -1], "NotEqualsSelf"] < ], < "pieces" : [["topcap", [-1, -1]]] < }, < { < "matchAllPoints" : [ < [[0, 1], "NotEqualsSelf"] < ], < "pieces" : [["bottomcap", [-1, 8]]] < } < ] --- > "matchAllPoints" : [[[0, 0], "Shadows"]], > "pieces" : [["fullShadow", [0, 0]]] 127,131c212,241 < "pieces" : [ < ["vertical", [-1, 0]], < ["topcap", [-1, -1]], < ["bottomcap", [-1, 8]] < ] --- > "matchAllPoints" : [[[0, 1], "Shadows"]], > "pieces" : [["topShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[-1, 0], "Shadows"]], > "pieces" : [["leftShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[0, -1], "Shadows"]], > "pieces" : [["bottomShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[1, 0], "Shadows"]], > "pieces" : [["rightShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[-1, 1], "Shadows"], [[0, 1], "NotShadows"], [[-1, 0], "NotShadows"]], > "pieces" : [["topLeftShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[1, 1], "Shadows"], [[0, 1], "NotShadows"], [[1, 0], "NotShadows"]], > "pieces" : [["topRightShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[-1, -1], "Shadows"], [[0, -1], "NotShadows"], [[-1, 0], "NotShadows"]], > "pieces" : [["bottomLeftShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[1, -1], "Shadows"], [[0, -1], "NotShadows"], [[1, 0], "NotShadows"]], > "pieces" : [["bottomRightShadow", [0, 0]]] tiles\pipetemplate.config 2a3,48 > "fullShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [64, 0] > }, > "topShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [0, 0] > }, > "leftShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [8, 0] > }, > "bottomShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [16, 0] > }, > "rightShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [24, 0] > }, > "topLeftShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [32, 0] > }, > "topRightShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [40, 0] > }, > "bottomLeftShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [48, 0] > }, > "bottomRightShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [56, 0] > }, > 115a162,168 > }, > > "icon" : { > "textureSize" : [8, 8], > "texturePosition" : [68, 36], > "colorStride" : [0, 48], > "variantStride" : [96, 0] 119c172 < "representativePiece": "H", --- > "representativePiece": "icon", 150a204,218 > }, > "Shadows" : { > "entries" : [ > { > "type" : "Shadows" > } > ] > }, > "NotShadows" : { > "entries" : [ > { > "type" : "Shadows", > "inverse" : true > } > ] 156d223 < // horizontal 158,163d224 < "matchAllPoints" : [ < [[0, 1], "NotEqualsSelf"], < [[0, -1], "NotEqualsSelf"] < ], < "haltOnMatch" : true, < "pieces" : [["H", [-4, -4]]], 164a226 > // horizontal 167c229,230 < [[1, 0], "Empty"] --- > [[0, 1], "NotEqualsSelf"], > [[0, -1], "NotEqualsSelf"] 169,215c232,233 < "pieces" : [["capE", [8, -4]]] < }, < { < "matchAllPoints" : [ < [[-1, 0], "Empty"] < ], < "pieces" : [["capW", [-4, -4]]] < } < ] < }, < < // vertical < { < "matchAllPoints" : [ < [[1, 0], "NotEqualsSelf"], < [[-1, 0], "NotEqualsSelf"] < ], < "haltOnMatch" : true, < "pieces" : [["V", [-4, -4]]], < "subMatches" : [ < { < "matchAllPoints" : [ < [[0, 1], "Empty"] < ], < "pieces" : [["capN", [-4, 8]]] < }, < { < "matchAllPoints" : [ < [[0, -1], "Empty"] < ], < "pieces" : [["capS", [-4, -4]]] < } < ] < }, < < // uppers < { < "matchAllPoints" : [ < [[0, 1], "NotEqualsSelf"] < ], < "haltOnSubMatch" : true, < "subMatches" : [ < { < "matchAllPoints" : [ < [[-1, 0], "NotEqualsSelf"] < ], < "haltOnSubMatch" : true, --- > "haltOnMatch" : true, > "pieces" : [["H", [-4, -4]]], 218,220c236,239 < "requiredLayer" : "foreground", < "haltOnMatch" : true, < "pieces" : [["NW", [-4, -4]]] --- > "matchAllPoints" : [ > [[1, 0], "Empty"] > ], > "pieces" : [["capE", [8, -4]]] 223c242,245 < "pieces" : [["bgNW", [-4, -4]]] --- > "matchAllPoints" : [ > [[-1, 0], "Empty"] > ], > "pieces" : [["capW", [-4, -4]]] 226a249,250 > > // vertical 229c253,254 < [[1, 0], "NotEqualsSelf"] --- > [[1, 0], "NotEqualsSelf"], > [[-1, 0], "NotEqualsSelf"] 231c256,257 < "haltOnSubMatch" : true, --- > "haltOnMatch" : true, > "pieces" : [["V", [-4, -4]]], 234,236c260,263 < "requiredLayer" : "foreground", < "haltOnMatch" : true, < "pieces" : [["NE", [-4, -4]]] --- > "matchAllPoints" : [ > [[0, 1], "Empty"] > ], > "pieces" : [["capN", [-4, 8]]] 239c266,269 < "pieces" : [["bgNE", [-4, -4]]] --- > "matchAllPoints" : [ > [[0, -1], "Empty"] > ], > "pieces" : [["capS", [-4, -4]]] 243,247d272 < { < "pieces" : [["N", [-4, -4]]] < } < ] < }, 249,255c274 < // downers < { < "matchAllPoints" : [ < [[0, -1], "NotEqualsSelf"] < ], < "haltOnSubMatch" : true, < "subMatches" : [ --- > // uppers 258c277 < [[-1, 0], "NotEqualsSelf"] --- > [[0, 1], "NotEqualsSelf"] 263,265c282,311 < "requiredLayer" : "foreground", < "haltOnMatch" : true, < "pieces" : [["SW", [-4, -4]]] --- > "matchAllPoints" : [ > [[-1, 0], "NotEqualsSelf"] > ], > "haltOnSubMatch" : true, > "subMatches" : [ > { > "requiredLayer" : "foreground", > "haltOnMatch" : true, > "pieces" : [["NW", [-4, -4]]] > }, > { > "pieces" : [["bgNW", [-4, -4]]] > } > ] > }, > { > "matchAllPoints" : [ > [[1, 0], "NotEqualsSelf"] > ], > "haltOnSubMatch" : true, > "subMatches" : [ > { > "requiredLayer" : "foreground", > "haltOnMatch" : true, > "pieces" : [["NE", [-4, -4]]] > }, > { > "pieces" : [["bgNE", [-4, -4]]] > } > ] 268c314 < "pieces" : [["bgSW", [-4, -4]]] --- > "pieces" : [["N", [-4, -4]]] 271a318,319 > > // downers 274c322 < [[1, 0], "NotEqualsSelf"] --- > [[0, -1], "NotEqualsSelf"] 279,281c327,356 < "requiredLayer" : "foreground", < "haltOnMatch" : true, < "pieces" : [["SE", [-4, -4]]] --- > "matchAllPoints" : [ > [[-1, 0], "NotEqualsSelf"] > ], > "haltOnSubMatch" : true, > "subMatches" : [ > { > "requiredLayer" : "foreground", > "haltOnMatch" : true, > "pieces" : [["SW", [-4, -4]]] > }, > { > "pieces" : [["bgSW", [-4, -4]]] > } > ] > }, > { > "matchAllPoints" : [ > [[1, 0], "NotEqualsSelf"] > ], > "haltOnSubMatch" : true, > "subMatches" : [ > { > "requiredLayer" : "foreground", > "haltOnMatch" : true, > "pieces" : [["SE", [-4, -4]]] > }, > { > "pieces" : [["bgSE", [-4, -4]]] > } > ] 284c359 < "pieces" : [["bgSE", [-4, -4]]] --- > "pieces" : [["S", [-4, -4]]] 287a363,383 > > // plus plus > { > "matchAllPoints" : [ > [[1, 0], "EqualsSelf"], > [[-1, 0], "EqualsSelf"], > [[0, 1], "EqualsSelf"], > [[0, -1], "EqualsSelf"] > ], > "haltOnMatch" : true, > "pieces" : [["C", [-4, -4]]] > }, > > // extra T's > { > "matchAllPoints" : [ > [[1, 0], "EqualsSelf"] > ], > "haltOnMatch" : true, > "pieces" : [["W", [-4, -4]]] > }, 289c385,388 < "pieces" : [["S", [-4, -4]]] --- > "matchAllPoints" : [ > [[-1, 0], "EqualsSelf"] > ], > "pieces" : [["E", [-4, -4]]] 294c393 < // plus plus --- > // SHADOWS 296,303c395,420 < "matchAllPoints" : [ < [[1, 0], "EqualsSelf"], < [[-1, 0], "EqualsSelf"], < [[0, 1], "EqualsSelf"], < [[0, -1], "EqualsSelf"] < ], < "haltOnMatch" : true, < "pieces" : [["C", [-4, -4]]] --- > "matchAllPoints" : [[[0, 0], "Shadows"]], > "pieces" : [["fullShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[0, 1], "Shadows"]], > "pieces" : [["topShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[-1, 0], "Shadows"]], > "pieces" : [["leftShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[0, -1], "Shadows"]], > "pieces" : [["bottomShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[1, 0], "Shadows"]], > "pieces" : [["rightShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[-1, 1], "Shadows"], [[0, 1], "NotShadows"], [[-1, 0], "NotShadows"]], > "pieces" : [["topLeftShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[1, 1], "Shadows"], [[0, 1], "NotShadows"], [[1, 0], "NotShadows"]], > "pieces" : [["topRightShadow", [0, 0]]] 305,306d421 < < // extra T's 308,312c423,424 < "matchAllPoints" : [ < [[1, 0], "EqualsSelf"] < ], < "haltOnMatch" : true, < "pieces" : [["W", [-4, -4]]] --- > "matchAllPoints" : [[[-1, -1], "Shadows"], [[0, -1], "NotShadows"], [[-1, 0], "NotShadows"]], > "pieces" : [["bottomLeftShadow", [0, 0]]] 315,318c427,428 < "matchAllPoints" : [ < [[-1, 0], "EqualsSelf"] < ], < "pieces" : [["E", [-4, -4]]] --- > "matchAllPoints" : [[[1, -1], "Shadows"], [[0, -1], "NotShadows"], [[1, 0], "NotShadows"]], > "pieces" : [["bottomRightShadow", [0, 0]]] tiles\railtemplate.config 79a80,86 > }, > > "icon" : { > "textureSize" : [8, 8], > "texturePosition" : [4, 4], > "colorStride" : [0, 16], > "variantStride" : [80, 0] 83c90 < "representativePiece": "H", --- > "representativePiece": "icon", tiles\rowtemplate.config 2a3,48 > "fullShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [64, 0] > }, > "topShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [0, 0] > }, > "leftShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [8, 0] > }, > "bottomShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [16, 0] > }, > "rightShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [24, 0] > }, > "topLeftShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [32, 0] > }, > "topRightShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [40, 0] > }, > "bottomLeftShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [48, 0] > }, > "bottomRightShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [56, 0] > }, > 25a72,78 > }, > > "icon" : { > "textureSize" : [8, 8], > "texturePosition" : [2, 38], > "colorStride" : [12, 0], > "variantStride" : [0, 48] 29c82 < "representativePiece": "single", --- > "representativePiece": "icon", 60a114,128 > }, > "Shadows" : { > "entries" : [ > { > "type" : "Shadows" > } > ] > }, > "NotShadows" : { > "entries" : [ > { > "type" : "Shadows", > "inverse" : true > } > ] 67,88c135,197 < "matchAllPoints" : [ < [[-1, 0], "NotEqualsSelf"], < [[1, 0], "EqualsSelf"] < ], < "haltOnMatch" : true, < "pieces" : [["left", [-2, -2]]] < }, < { < "matchAllPoints" : [ < [[1, 0], "EqualsSelf"], < [[-1, 0], "EqualsSelf"] < ], < "haltOnMatch" : true, < "pieces" : [["center", [-2, -2]]] < }, < { < "matchAllPoints" : [ < [[-1, 0], "EqualsSelf"], < [[1, 0], "NotEqualsSelf"] < ], < "haltOnMatch" : true, < "pieces" : [["right", [-2, -2]]] --- > "subMatches" : [ > { > "matchAllPoints" : [ > [[-1, 0], "NotEqualsSelf"], > [[1, 0], "EqualsSelf"] > ], > "haltOnMatch" : true, > "pieces" : [["left", [-2, -2]]] > }, > { > "matchAllPoints" : [ > [[1, 0], "EqualsSelf"], > [[-1, 0], "EqualsSelf"] > ], > "haltOnMatch" : true, > "pieces" : [["center", [-2, -2]]] > }, > { > "matchAllPoints" : [ > [[-1, 0], "EqualsSelf"], > [[1, 0], "NotEqualsSelf"] > ], > "haltOnMatch" : true, > "pieces" : [["right", [-2, -2]]] > }, > { > "pieces" : [["single", [-2, -2]]] > } > ] > }, > > // SHADOWS > { > "matchAllPoints" : [[[0, 0], "Shadows"]], > "pieces" : [["fullShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[0, 1], "Shadows"]], > "pieces" : [["topShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[-1, 0], "Shadows"]], > "pieces" : [["leftShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[0, -1], "Shadows"]], > "pieces" : [["bottomShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[1, 0], "Shadows"]], > "pieces" : [["rightShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[-1, 1], "Shadows"], [[0, 1], "NotShadows"], [[-1, 0], "NotShadows"]], > "pieces" : [["topLeftShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[1, 1], "Shadows"], [[0, 1], "NotShadows"], [[1, 0], "NotShadows"]], > "pieces" : [["topRightShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[-1, -1], "Shadows"], [[0, -1], "NotShadows"], [[-1, 0], "NotShadows"]], > "pieces" : [["bottomLeftShadow", [0, 0]]] 91c200,201 < "pieces" : [["single", [-2, -2]]] --- > "matchAllPoints" : [[[1, -1], "Shadows"], [[0, -1], "NotShadows"], [[1, 0], "NotShadows"]], > "pieces" : [["bottomRightShadow", [0, 0]]] tiles\screwtemplate.config 2a3,48 > "fullShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [64, 0] > }, > "topShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [0, 0] > }, > "leftShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [8, 0] > }, > "bottomShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [16, 0] > }, > "rightShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [24, 0] > }, > "topLeftShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [32, 0] > }, > "topRightShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [40, 0] > }, > "bottomLeftShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [48, 0] > }, > "bottomRightShadow" : { > "texture" : "/tiles/shadows.png", > "textureSize" : [8, 8], > "texturePosition" : [56, 0] > }, > 25a72,78 > }, > > "icon" : { > "textureSize" : [8, 8], > "texturePosition" : [2, 38], > "colorStride" : [12, 0], > "variantStride" : [0, 48] 29c82 < "representativePiece": "single", --- > "representativePiece": "icon", 60a114,128 > }, > "Shadows" : { > "entries" : [ > { > "type" : "Shadows" > } > ] > }, > "NotShadows" : { > "entries" : [ > { > "type" : "Shadows", > "inverse" : true > } > ] 67,88c135,197 < "matchAllPoints" : [ < [[0, 1], "Empty"], < [[0, -1], "Connects"] < ], < "haltOnMatch" : true, < "pieces" : [["top", [-2, -2]]] < }, < { < "matchAllPoints" : [ < [[0, 1], "Connects"], < [[0, -1], "Connects"] < ], < "haltOnMatch" : true, < "pieces" : [["center", [-2, -2]]] < }, < { < "matchAllPoints" : [ < [[0, 1], "Connects"], < [[0, -1], "Empty"] < ], < "haltOnMatch" : true, < "pieces" : [["bottom", [-2, -2]]] --- > "subMatches" : [ > { > "matchAllPoints" : [ > [[0, 1], "Empty"], > [[0, -1], "Connects"] > ], > "haltOnMatch" : true, > "pieces" : [["top", [-2, -2]]] > }, > { > "matchAllPoints" : [ > [[0, 1], "Connects"], > [[0, -1], "Connects"] > ], > "haltOnMatch" : true, > "pieces" : [["center", [-2, -2]]] > }, > { > "matchAllPoints" : [ > [[0, 1], "Connects"], > [[0, -1], "Empty"] > ], > "haltOnMatch" : true, > "pieces" : [["bottom", [-2, -2]]] > }, > { > "pieces" : [["single", [-2, -2]]] > } > ] > }, > > // SHADOWS > { > "matchAllPoints" : [[[0, 0], "Shadows"]], > "pieces" : [["fullShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[0, 1], "Shadows"]], > "pieces" : [["topShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[-1, 0], "Shadows"]], > "pieces" : [["leftShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[0, -1], "Shadows"]], > "pieces" : [["bottomShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[1, 0], "Shadows"]], > "pieces" : [["rightShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[-1, 1], "Shadows"], [[0, 1], "NotShadows"], [[-1, 0], "NotShadows"]], > "pieces" : [["topLeftShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[1, 1], "Shadows"], [[0, 1], "NotShadows"], [[1, 0], "NotShadows"]], > "pieces" : [["topRightShadow", [0, 0]]] > }, > { > "matchAllPoints" : [[[-1, -1], "Shadows"], [[0, -1], "NotShadows"], [[-1, 0], "NotShadows"]], > "pieces" : [["bottomLeftShadow", [0, 0]]] 91c200,201 < "pieces" : [["single", [-2, -2]]] --- > "matchAllPoints" : [[[1, -1], "Shadows"], [[0, -1], "NotShadows"], [[1, 0], "NotShadows"]], > "pieces" : [["bottomRightShadow", [0, 0]]] tiles\materials\bars.material 13a14 > "blocksLiquidFlow" : false, tiles\materials\chain.material 13a14 > "blocksLiquidFlow" : false, tiles\materials\copperfence.material 13a14 > "blocksLiquidFlow" : false, tiles\materials\crosshatch.material 14a15 > "blocksLiquidFlow" : false, tiles\materials\dermisblock.material 12d11 < "drawBackground" : true, tiles\materials\heavyironbars.material 13a14 > "blocksLiquidFlow" : false, tiles\materials\heavypipe.material 12d11 < "drawBackground" : true, tiles\materials\log.material 12d11 < "drawBackground" : true, tiles\materials\pillarblock.material 12d11 < "drawBackground" : true, tiles\materials\sewerpipe.material 12d11 < "drawBackground" : true, tiles\materials\silverscrew.material 12d11 < "drawBackground" : true, tiles\materials\spidersilkblock.material 13a14 > "blocksLiquidFlow" : false, tiles\materials\tentaclepipe.material 12d11 < "drawBackground" : true, tiles\materials\wickersupport.material 14a15 > "blocksLiquidFlow" : false, tiles\materials\woodenwindow2.material 14a15 > "blocksLiquidFlow" : false, tilesets\packed\huge-objects.json 7c7 < "tilecount" : 82, --- > "tilecount" : 101, 36a37,44 > "100" : { > "//description" : "Start piece background", > "//name" : "stationbackgroundstart", > "//shortdescription" : "Start piece background", > "imagePositionX" : "-136", > "imagePositionY" : "-136", > "object" : "stationbackgroundstart" > }, 657a666,733 > "82" : { > "//description" : "Core piece background", > "//name" : "stationbackgroundcore", > "//shortdescription" : "Core piece background", > "imagePositionX" : "-136", > "imagePositionY" : "-136", > "object" : "stationbackgroundcore" > }, > "83" : { > "//description" : "2 bend piece background", > "//name" : "stationbackground2bend", > "//shortdescription" : "2 bend piece background", > "imagePositionX" : "-136", > "imagePositionY" : "-136", > "object" : "stationbackground2bend", > "tilesetDirection" : "right" > }, > "84" : { > "//description" : "T Junction Horizontal Bottom Piece Background", > "//name" : "stationbackgroundtjunchorizontalbottom", > "//shortdescription" : "T Junction Horizontal Bottom Piece Background", > "imagePositionX" : "-72", > "imagePositionY" : "-40", > "object" : "stationbackgroundtjunchorizontalbottom" > }, > "85" : { > "//description" : "Cross piece background", > "//name" : "stationbackgroundcross", > "//shortdescription" : "Cross piece background", > "imagePositionX" : "-136", > "imagePositionY" : "-136", > "object" : "stationbackgroundcross", > "tilesetDirection" : "right" > }, > "86" : { > "//description" : "Bend bottom piece background", > "//name" : "stationbackgroundbendbot", > "//shortdescription" : "Bend bottom piece background", > "imagePositionX" : "-136", > "imagePositionY" : "-136", > "object" : "stationbackgroundbendbot", > "tilesetDirection" : "left" > }, > "87" : { > "//description" : "Passage piece background", > "//name" : "stationbackgroundpassage", > "//shortdescription" : "Passage piece background", > "imagePositionX" : "-136", > "imagePositionY" : "-136", > "object" : "stationbackgroundpassage" > }, > "88" : { > "//description" : "Bend top piece background", > "//name" : "stationbackgroundbendtop", > "//shortdescription" : "Bend top piece background", > "imagePositionX" : "-136", > "imagePositionY" : "-136", > "object" : "stationbackgroundbendtop", > "tilesetDirection" : "left" > }, > "89" : { > "//description" : "Shaft piece background", > "//name" : "stationbackgroundshaft", > "//shortdescription" : "Shaft piece background", > "imagePositionX" : "-136", > "imagePositionY" : "-136", > "object" : "stationbackgroundshaft" > }, 665a742,824 > }, > "90" : { > "//description" : "T Junction Horizontal Top Piece Background", > "//name" : "stationbackgroundtjunchorizontaltop", > "//shortdescription" : "T Junction Horizontal Top Piece Background", > "imagePositionX" : "-72", > "imagePositionY" : "-40", > "object" : "stationbackgroundtjunchorizontaltop" > }, > "91" : { > "//description" : "T Junction Vertical Piece Background", > "//name" : "stationbackgroundtjuncvertical", > "//shortdescription" : "T Junction Vertical Piece Background", > "imagePositionX" : "-72", > "imagePositionY" : "-40", > "object" : "stationbackgroundtjuncvertical", > "tilesetDirection" : "left" > }, > "92" : { > "//description" : "Huge Core Diagonal Top Piece Background", > "//name" : "stationbackgroundhugecorediagtop", > "//shortdescription" : "Huge Core Diagonal Top Piece Background", > "imagePositionX" : "-136", > "imagePositionY" : "-136", > "object" : "stationbackgroundhugecorediagtop", > "tilesetDirection" : "right" > }, > "93" : { > "//description" : "Huge Core Diagonal Bottom Piece Background", > "//name" : "stationbackgroundhugecorediagbot", > "//shortdescription" : "Huge Core Diagonal Bottom Piece Background", > "imagePositionX" : "-136", > "imagePositionY" : "-136", > "object" : "stationbackgroundhugecorediagbot", > "tilesetDirection" : "right" > }, > "94" : { > "//description" : "Glass passage piece background", > "//name" : "stationbackgroundpassageglass", > "//shortdescription" : "Glass passage piece background", > "imagePositionX" : "-136", > "imagePositionY" : "-136", > "object" : "stationbackgroundpassageglass" > }, > "95" : { > "//description" : "Glass shaft bottom piece background", > "//name" : "stationbackgroundshaftglassbottom", > "//shortdescription" : "Glass shaft bottom piece background", > "imagePositionX" : "-136", > "imagePositionY" : "-136", > "object" : "stationbackgroundshaftglassbottom" > }, > "96" : { > "//description" : "Glass shaft top piece background", > "//name" : "stationbackgroundshaftglasstop", > "//shortdescription" : "Glass shaft top piece background", > "imagePositionX" : "-136", > "imagePositionY" : "-136", > "object" : "stationbackgroundshaftglasstop" > }, > "97" : { > "//description" : "Glass passage left piece background", > "//name" : "stationbackgroundpassageglassleft", > "//shortdescription" : "Glass passage left piece background", > "imagePositionX" : "-136", > "imagePositionY" : "-136", > "object" : "stationbackgroundpassageglassleft" > }, > "98" : { > "//description" : "Glass shaft piece background", > "//name" : "stationbackgroundshaftglass", > "//shortdescription" : "Glass shaft piece background", > "imagePositionX" : "-136", > "imagePositionY" : "-136", > "object" : "stationbackgroundshaftglass" > }, > "99" : { > "//description" : "Glass passage right piece background", > "//name" : "stationbackgroundpassageglassright", > "//shortdescription" : "Glass passage right piece background", > "imagePositionX" : "-136", > "imagePositionY" : "-136", > "object" : "stationbackgroundpassageglassright" 677a837,839 > "100" : { > "image" : "./../../../../tiled/packed/objects/stationbackgroundstart.png" > }, 911a1074,1097 > "82" : { > "image" : "./../../../../tiled/packed/objects/stationbackgroundcore.png" > }, > "83" : { > "image" : "./../../../../tiled/packed/objects/stationbackground2bend.png" > }, > "84" : { > "image" : "./../../../../tiled/packed/objects/stationbackgroundtjunchorizontalbottom.png" > }, > "85" : { > "image" : "./../../../../tiled/packed/objects/stationbackgroundcross.png" > }, > "86" : { > "image" : "./../../../../tiled/packed/objects/stationbackgroundbendbot.png" > }, > "87" : { > "image" : "./../../../../tiled/packed/objects/stationbackgroundpassage.png" > }, > "88" : { > "image" : "./../../../../tiled/packed/objects/stationbackgroundbendtop.png" > }, > "89" : { > "image" : "./../../../../tiled/packed/objects/stationbackgroundshaft.png" > }, 913a1100,1129 > }, > "90" : { > "image" : "./../../../../tiled/packed/objects/stationbackgroundtjunchorizontaltop.png" > }, > "91" : { > "image" : "./../../../../tiled/packed/objects/stationbackgroundtjuncvertical.png" > }, > "92" : { > "image" : "./../../../../tiled/packed/objects/stationbackgroundhugecorediagtop.png" > }, > "93" : { > "image" : "./../../../../tiled/packed/objects/stationbackgroundhugecorediagbot.png" > }, > "94" : { > "image" : "./../../../../tiled/packed/objects/stationbackgroundpassageglass.png" > }, > "95" : { > "image" : "./../../../../tiled/packed/objects/stationbackgroundshaftglassbottom.png" > }, > "96" : { > "image" : "./../../../../tiled/packed/objects/stationbackgroundshaftglasstop.png" > }, > "97" : { > "image" : "./../../../../tiled/packed/objects/stationbackgroundpassageglassleft.png" > }, > "98" : { > "image" : "./../../../../tiled/packed/objects/stationbackgroundshaftglass.png" > }, > "99" : { > "image" : "./../../../../tiled/packed/objects/stationbackgroundpassageglassright.png" tilesets\packed\materials.json 7c7 < "tilecount" : 190, --- > "tilecount" : 195, 619a620,647 > "190" : { > "//description" : "Cheap, resilient panelling widely used for ship and station construction.", > "//name" : "slopedhullpanel", > "//shortdescription" : "Hull Panel", > "material" : "slopedhullpanel" > }, > "191" : { > "//name" : "rivetedhullpanel", > "invalid" : "true" > }, > "192" : { > "//description" : "A somewhat inexpensive material that can withstand most weathering.", > "//name" : "slopedinsetpanel", > "//shortdescription" : "Inset Panel", > "material" : "slopedinsetpanel" > }, > "193" : { > "//description" : "Sturdy metal panelling that has been rusted with age.", > "//name" : "slopedrustypanel", > "//shortdescription" : "Rusty Panel", > "material" : "slopedrustypanel" > }, > "194" : { > "//description" : "Rusted scrap metal paneling in a state of severe disrepair.", > "//name" : "slopedscrappanel", > "//shortdescription" : "Scrap Panel", > "material" : "slopedscrappanel" > }, 1452a1481,1495 > }, > "190" : { > "image" : "./../../../../tiled/packed/materials/slopedhullpanel.png" > }, > "191" : { > "image" : "./../../../../tiled/packed/../packed/invalid.png" > }, > "192" : { > "image" : "./../../../../tiled/packed/materials/slopedinsetpanel.png" > }, > "193" : { > "image" : "./../../../../tiled/packed/materials/slopedrustypanel.png" > }, > "194" : { > "image" : "./../../../../tiled/packed/materials/slopedscrappanel.png" tilesets\packed\miscellaneous.json 8c8 < "tilecount":20, --- > "tilecount":22, 95a96,109 > "20": > { > "\/\/description":"Zero G", > "\/\/shortdescription":"An unprotected area without gravity.", > "dungeonid":"65525", > "allowOverdrawing":"true" > }, > "21": > { > "\/\/description":"Zero G (protected)", > "\/\/shortdescription":"A tile-protected area without gravity.", > "dungeonid":"65524", > "allowOverdrawing":"true" > }, 195a210,217 > }, > "20": > { > "image":"..\/..\/..\/..\/tiled\/packed\/miscellaneous\/20.png" > }, > "21": > { > "image":"..\/..\/..\/..\/tiled\/packed\/miscellaneous\/21.png" tilesets\packed\objects-by-category\actionfigure.json 7c7 < "tilecount" : 66, --- > "tilecount" : 67, 576a577,585 > "66" : { > "//description" : "The label reads, \"A braindead bioweapon created by irresponsible human scientists.\"", > "//name" : "paraspriteaf", > "//shortdescription" : "Parasprite Figurine", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "paraspriteaf", > "tilesetDirection" : "right" > }, 793a803,805 > }, > "66" : { > "image" : "../../../../../tiled/packed/objects/paraspriteaf.png" tilesets\packed\objects-by-category\breakable.json 7c7 < "tilecount" : 304, --- > "tilecount" : 308, 1924a1925,1956 > "304" : { > "//description" : "A large breakable capsule. Wonder what's inside.", > "//name" : "capsulespace", > "//shortdescription" : "Surface-Mounted Capsule", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "capsulespace" > }, > "305" : { > "//description" : "A large breakable capsule. Wonder what's inside.", > "//name" : "capsulespace_orientation1", > "//shortdescription" : "Surface-Mounted Capsule", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "capsulespace" > }, > "306" : { > "//description" : "A large breakable capsule. Wonder what's inside.", > "//name" : "capsulespace_orientation2", > "//shortdescription" : "Surface-Mounted Capsule", > "imagePositionX" : "0", > "imagePositionY" : "-8", > "object" : "capsulespace" > }, > "307" : { > "//description" : "A large breakable capsule. Wonder what's inside.", > "//name" : "capsulespace_orientation3", > "//shortdescription" : "Surface-Mounted Capsule", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "capsulespace" > }, 3251a3284,3295 > }, > "304" : { > "image" : "../../../../../tiled/packed/objects/capsulespace.png" > }, > "305" : { > "image" : "../../../../../tiled/packed/objects/capsulespace_orientation1.png" > }, > "306" : { > "image" : "../../../../../tiled/packed/objects/capsulespace_orientation2.png" > }, > "307" : { > "image" : "../../../../../tiled/packed/objects/capsulespace_orientation3.png" tilesets\packed\objects-by-category\crafting.json 7c7 < "tilecount" : 79, --- > "tilecount" : 80, 321c321 < "//description" : "The flag of the Protectorate. Use ^green;[E]^white; to bookmark a teleportation location.", --- > "//description" : "The human flag. Use ^green;[E]^white; to bookmark a teleportation location.", 330c330 < "//description" : "The flag of the Protectorate. Use ^green;[E]^white; to bookmark a teleportation location.", --- > "//description" : "The human flag. Use ^green;[E]^white; to bookmark a teleportation location.", 463d462 < "//description" : "A device for spinning fabric from natural fibres.", 465,469c464 < "//shortdescription" : "^orange;Spinning Wheel^white;", < "imagePositionX" : "-16", < "imagePositionY" : "0", < "object" : "spinningwheel", < "tilesetDirection" : "right" --- > "invalid" : "true" 617a613,621 > "79" : { > "//description" : "Used to produce modular mech components.", > "//name" : "mechcraftingtable", > "//shortdescription" : "^orange;Mech Part Crafting Table^white;", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "mechcraftingtable", > "tilesetDirection" : "right" > }, 867a872,874 > }, > "79" : { > "image" : "../../../../../tiled/packed/objects/mechcraftingtable.png" tilesets\packed\objects-by-category\decorative.json 7c7 < "tilecount" : 1360, --- > "tilecount" : 1416, 3463a3464,3553 > "1360" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble3", > "//shortdescription" : "Ship Greeble 3", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble3", > "tilesetDirection" : "right" > }, > "1361" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble4", > "//shortdescription" : "Ship Greeble 4", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble4", > "tilesetDirection" : "right" > }, > "1362" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble2", > "//shortdescription" : "Ship Greeble 2", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble2", > "tilesetDirection" : "right" > }, > "1363" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble1", > "//shortdescription" : "Ship Greeble 1", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble1", > "tilesetDirection" : "right" > }, > "1364" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble3_orientation2", > "//shortdescription" : "Ship Greeble 3", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble3", > "tilesetDirection" : "right" > }, > "1365" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble3_orientation3", > "//shortdescription" : "Ship Greeble 3", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble3", > "tilesetDirection" : "right" > }, > "1366" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble3_orientation4", > "//shortdescription" : "Ship Greeble 3", > "imagePositionX" : "0", > "imagePositionY" : "-16", > "object" : "shipgreeble3", > "tilesetDirection" : "left" > }, > "1367" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble3_orientation5", > "//shortdescription" : "Ship Greeble 3", > "imagePositionX" : "0", > "imagePositionY" : "-16", > "object" : "shipgreeble3", > "tilesetDirection" : "right" > }, > "1368" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble3_orientation6", > "//shortdescription" : "Ship Greeble 3", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble3", > "tilesetDirection" : "right" > }, > "1369" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble3_orientation7", > "//shortdescription" : "Ship Greeble 3", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble3", > "tilesetDirection" : "right" > }, 3472a3563,3652 > "1370" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble4_orientation2", > "//shortdescription" : "Ship Greeble 4", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble4", > "tilesetDirection" : "right" > }, > "1371" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble4_orientation3", > "//shortdescription" : "Ship Greeble 4", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble4", > "tilesetDirection" : "right" > }, > "1372" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble4_orientation4", > "//shortdescription" : "Ship Greeble 4", > "imagePositionX" : "0", > "imagePositionY" : "-16", > "object" : "shipgreeble4", > "tilesetDirection" : "left" > }, > "1373" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble4_orientation5", > "//shortdescription" : "Ship Greeble 4", > "imagePositionX" : "0", > "imagePositionY" : "-16", > "object" : "shipgreeble4", > "tilesetDirection" : "right" > }, > "1374" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble4_orientation6", > "//shortdescription" : "Ship Greeble 4", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble4", > "tilesetDirection" : "right" > }, > "1375" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble4_orientation7", > "//shortdescription" : "Ship Greeble 4", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble4", > "tilesetDirection" : "right" > }, > "1376" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble2_orientation2", > "//shortdescription" : "Ship Greeble 2", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble2", > "tilesetDirection" : "right" > }, > "1377" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble2_orientation3", > "//shortdescription" : "Ship Greeble 2", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble2", > "tilesetDirection" : "right" > }, > "1378" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble2_orientation4", > "//shortdescription" : "Ship Greeble 2", > "imagePositionX" : "0", > "imagePositionY" : "-16", > "object" : "shipgreeble2", > "tilesetDirection" : "left" > }, > "1379" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble2_orientation5", > "//shortdescription" : "Ship Greeble 2", > "imagePositionX" : "0", > "imagePositionY" : "-16", > "object" : "shipgreeble2", > "tilesetDirection" : "right" > }, 3481a3662,3751 > "1380" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble2_orientation6", > "//shortdescription" : "Ship Greeble 2", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble2", > "tilesetDirection" : "right" > }, > "1381" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble2_orientation7", > "//shortdescription" : "Ship Greeble 2", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble2", > "tilesetDirection" : "right" > }, > "1382" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble1_orientation2", > "//shortdescription" : "Ship Greeble 1", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble1", > "tilesetDirection" : "right" > }, > "1383" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble1_orientation3", > "//shortdescription" : "Ship Greeble 1", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble1", > "tilesetDirection" : "right" > }, > "1384" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble1_orientation4", > "//shortdescription" : "Ship Greeble 1", > "imagePositionX" : "0", > "imagePositionY" : "-8", > "object" : "shipgreeble1", > "tilesetDirection" : "left" > }, > "1385" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble1_orientation5", > "//shortdescription" : "Ship Greeble 1", > "imagePositionX" : "0", > "imagePositionY" : "-8", > "object" : "shipgreeble1", > "tilesetDirection" : "right" > }, > "1386" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble1_orientation6", > "//shortdescription" : "Ship Greeble 1", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble1", > "tilesetDirection" : "right" > }, > "1387" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble1_orientation7", > "//shortdescription" : "Ship Greeble 1", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble1", > "tilesetDirection" : "right" > }, > "1388" : { > "//description" : "A dancing hula girl. Aloha!", > "//name" : "hulagirl", > "//shortdescription" : "Hula Girl", > "imagePositionX" : "0", > "imagePositionY" : "0", > "object" : "hulagirl", > "tilesetDirection" : "right" > }, > "1389" : { > "//description" : "A flickering holographic display of an unidentified planet.", > "//name" : "stationhologram", > "//shortdescription" : "Station Hologram", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "stationhologram", > "tilesetDirection" : "right" > }, 3489a3760,3849 > "1390" : { > "//description" : "A wall-mounted screen lit up with lots of blue text.", > "//name" : "stationdisplay", > "//shortdescription" : "Station Display", > "imagePositionX" : "-16", > "imagePositionY" : "-8", > "object" : "stationdisplay", > "tilesetDirection" : "right" > }, > "1391" : { > "//description" : "A vent typically used for keeping the air clean aboard space stations.", > "//name" : "stationceilingvent", > "//shortdescription" : "Station Ceiling Vent", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "stationceilingvent", > "tilesetDirection" : "right" > }, > "1392" : { > "//description" : "A large rotating generator, or radar, or perhaps an engine...", > "//name" : "stationpylon", > "//shortdescription" : "Station Pylon", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "stationpylon", > "tilesetDirection" : "right" > }, > "1393" : { > "//description" : "A panel which is designed to attach to a space structure or ship.", > "//name" : "stationwallpanel", > "//shortdescription" : "Station Wall Panel", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "stationwallpanel", > "tilesetDirection" : "right" > }, > "1394" : { > "//description" : "A large computer server rack, with brackets for floor mounting.", > "//name" : "astroserver", > "//shortdescription" : "Astro Server", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "astroserver", > "tilesetDirection" : "right" > }, > "1395" : { > "//description" : "Brackets are built into the base to attach this monitor to the ceiling.", > "//name" : "astroceilingmonitor", > "//shortdescription" : "Astro Ceiling Monitor", > "imagePositionX" : "-16", > "imagePositionY" : "-24", > "object" : "astroceilingmonitor", > "tilesetDirection" : "right" > }, > "1396" : { > "//description" : "Brackets are built into the base to attach this monitor to the ceiling.", > "//name" : "astroceilingmonitor_orientation1", > "//shortdescription" : "Astro Ceiling Monitor", > "imagePositionX" : "-24", > "imagePositionY" : "-24", > "object" : "astroceilingmonitor", > "tilesetDirection" : "right" > }, > "1397" : { > "//description" : "A panel designed for inside space environments.", > "//name" : "astrowallpanel", > "//shortdescription" : "Astro Wall Panel", > "imagePositionX" : "-16", > "imagePositionY" : "-8", > "object" : "astrowallpanel", > "tilesetDirection" : "right" > }, > "1398" : { > "//description" : "An artificial atmospheric system exhaust port.", > "//name" : "astrovent", > "//shortdescription" : "Astro Vent", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "astrovent", > "tilesetDirection" : "right" > }, > "1399" : { > "//description" : "A compact electronic display monitor.", > "//name" : "astromonitor", > "//shortdescription" : "Astro Monitor", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "astromonitor", > "tilesetDirection" : "right" > }, 3507a3868,3955 > "1400" : { > "//description" : "A sign with an image indicating a medical station.", > "//name" : "stationtradesignmedic", > "//shortdescription" : "Medic Station Sign", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "stationtradesignmedic", > "tilesetDirection" : "right" > }, > "1401" : { > "//description" : "A sign with an image of an electronic component, indicating an electronics station.", > "//name" : "stationtradesignelectronics", > "//shortdescription" : "Electronics Station Sign", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "stationtradesignelectronics", > "tilesetDirection" : "right" > }, > "1402" : { > "//description" : "A sign with an image of a gun, indicating a weapons station.", > "//name" : "stationtradesignweapons", > "//shortdescription" : "Weapons Station Sign", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "stationtradesignweapons", > "tilesetDirection" : "right" > }, > "1403" : { > "//description" : "A sign with an image of food utensils, indicating a food station.", > "//name" : "stationtradesignfood", > "//shortdescription" : "Food Station Sign", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "stationtradesignfood", > "tilesetDirection" : "right" > }, > "1404" : { > "//description" : "A metal sheet with a target painted on. Perfect for practicing your aim.", > "//name" : "shootingtarget", > "//shortdescription" : "Shooting Target", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "shootingtarget", > "tilesetDirection" : "right" > }, > "1405" : { > "//description" : "A fine china bowl.", > "//name" : "classicbowl", > "//shortdescription" : "Classic Bowl", > "imagePositionX" : "0", > "imagePositionY" : "0", > "object" : "classicbowl", > "tilesetDirection" : "right" > }, > "1406" : { > "//description" : "A fine china mug.", > "//name" : "classicmug", > "//shortdescription" : "Classic Mug", > "imagePositionX" : "0", > "imagePositionY" : "0", > "object" : "classicmug", > "tilesetDirection" : "right" > }, > "1407" : { > "//description" : "This cool computer is making a lot of 'beep boop boop beep' noises.", > "//name" : "apexcoolcomputer_orientation1", > "//shortdescription" : "Cool Computer", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "apexcoolcomputer", > "tilesetDirection" : "right" > }, > "1408" : { > "//description" : "A console for monitoring the conditions inside an orbiting station.", > "//name" : "playerstationconsole", > "//shortdescription" : "Station Console", > "imagePositionX" : "-16", > "imagePositionY" : "-8", > "object" : "playerstationconsole" > }, > "1409" : { > "//description" : "A hanging mech booster.", > "//name" : "hangingbooster", > "//shortdescription" : "Hanging Booster", > "imagePositionX" : "-16", > "imagePositionY" : "-32", > "object" : "hangingbooster" > }, 3515a3964,4015 > "1410" : { > "//description" : "This metal sign indicates a mech work station.", > "//name" : "mechsign", > "//shortdescription" : "Mech Sign", > "imagePositionX" : "-16", > "imagePositionY" : "-16", > "object" : "mechsign" > }, > "1411" : { > "//description" : "A halogen sign for the Letheia corporation.", > "//name" : "letheiasign", > "//shortdescription" : "Letheia Corp Sign", > "imagePositionX" : "-32", > "imagePositionY" : "-8", > "object" : "letheiasign" > }, > "1412" : { > "//description" : "A screen displaying a series of space-themed photographs.", > "//name" : "spaceslideshow", > "//shortdescription" : "Space Slideshow", > "imagePositionX" : "-32", > "imagePositionY" : "-16", > "object" : "spaceslideshow", > "tilesetDirection" : "right" > }, > "1413" : { > "//description" : "A scientific telescope, perfect for observing the stars.", > "//name" : "telescope", > "//shortdescription" : "Astronomy Telescope", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "telescope", > "tilesetDirection" : "right" > }, > "1414" : { > "//description" : "A scientific telescope, perfect for observing the stars.", > "//name" : "telescope_orientation1", > "//shortdescription" : "Astronomy Telescope", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "telescope", > "tilesetDirection" : "right" > }, > "1415" : { > "//description" : "An arcade machine with an interactive narrative game.", > "//name" : "beautifulattempt", > "//shortdescription" : "Beautiful Attempt! Machine", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "beautifulattempt", > "tilesetDirection" : "right" > }, 3794c4294 < "//description" : "A holiday pole! Its festively striped.", --- > "//description" : "A holiday pole! It's festively striped.", 5722c6222 < "//description" : "It's a patient file. He appears to be human, but... with two hearts?", --- > "//description" : "It's a screen displaying an old medical scan.", 6012c6512,6513 < "object" : "numisign" --- > "object" : "numisign", > "tilesetDirection" : "right" 6789c7290 < "//description" : "This appears to be an analysis of the environment outside of the bunker.", --- > "//description" : "This panel appears to monitor some obscure environmental data.", 8829c9330 < "//description" : "What does USCM stand for, again? Oh - United Systems Colonial Marines.", --- > "//description" : "What does USCM stand for, again?", 9929c10430 < "//description" : "The flag of the Protectorate. Use ^green;[E]^white; to bookmark a teleportation location.", --- > "//description" : "The human flag. Use ^green;[E]^white; to bookmark a teleportation location.", 9938c10439 < "//description" : "The flag of the Protectorate. Use ^green;[E]^white; to bookmark a teleportation location.", --- > "//description" : "The human flag. Use ^green;[E]^white; to bookmark a teleportation location.", 12550a13052,13081 > "1360" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble3.png" > }, > "1361" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble4.png" > }, > "1362" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble2.png" > }, > "1363" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble1.png" > }, > "1364" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble3_orientation2.png" > }, > "1365" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble3_orientation3.png" > }, > "1366" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble3_orientation4.png" > }, > "1367" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble3_orientation5.png" > }, > "1368" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble3_orientation6.png" > }, > "1369" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble3_orientation7.png" > }, 12553a13085,13114 > "1370" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble4_orientation2.png" > }, > "1371" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble4_orientation3.png" > }, > "1372" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble4_orientation4.png" > }, > "1373" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble4_orientation5.png" > }, > "1374" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble4_orientation6.png" > }, > "1375" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble4_orientation7.png" > }, > "1376" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble2_orientation2.png" > }, > "1377" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble2_orientation3.png" > }, > "1378" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble2_orientation4.png" > }, > "1379" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble2_orientation5.png" > }, 12556a13118,13147 > "1380" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble2_orientation6.png" > }, > "1381" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble2_orientation7.png" > }, > "1382" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble1_orientation2.png" > }, > "1383" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble1_orientation3.png" > }, > "1384" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble1_orientation4.png" > }, > "1385" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble1_orientation5.png" > }, > "1386" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble1_orientation6.png" > }, > "1387" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble1_orientation7.png" > }, > "1388" : { > "image" : "../../../../../tiled/packed/objects/hulagirl.png" > }, > "1389" : { > "image" : "../../../../../tiled/packed/objects/stationhologram.png" > }, 12559a13151,13180 > "1390" : { > "image" : "../../../../../tiled/packed/objects/stationdisplay.png" > }, > "1391" : { > "image" : "../../../../../tiled/packed/objects/stationceilingvent.png" > }, > "1392" : { > "image" : "../../../../../tiled/packed/objects/stationpylon.png" > }, > "1393" : { > "image" : "../../../../../tiled/packed/objects/stationwallpanel.png" > }, > "1394" : { > "image" : "../../../../../tiled/packed/objects/astroserver.png" > }, > "1395" : { > "image" : "../../../../../tiled/packed/objects/astroceilingmonitor.png" > }, > "1396" : { > "image" : "../../../../../tiled/packed/objects/astroceilingmonitor_orientation1.png" > }, > "1397" : { > "image" : "../../../../../tiled/packed/objects/astrowallpanel.png" > }, > "1398" : { > "image" : "../../../../../tiled/packed/objects/astrovent.png" > }, > "1399" : { > "image" : "../../../../../tiled/packed/objects/astromonitor.png" > }, 12565a13187,13216 > "1400" : { > "image" : "../../../../../tiled/packed/objects/stationtradesignmedic.png" > }, > "1401" : { > "image" : "../../../../../tiled/packed/objects/stationtradesignelectronics.png" > }, > "1402" : { > "image" : "../../../../../tiled/packed/objects/stationtradesignweapons.png" > }, > "1403" : { > "image" : "../../../../../tiled/packed/objects/stationtradesignfood.png" > }, > "1404" : { > "image" : "../../../../../tiled/packed/objects/shootingtarget.png" > }, > "1405" : { > "image" : "../../../../../tiled/packed/objects/classicbowl.png" > }, > "1406" : { > "image" : "../../../../../tiled/packed/objects/classicmug.png" > }, > "1407" : { > "image" : "../../../../../tiled/packed/objects/apexcoolcomputer_orientation1.png" > }, > "1408" : { > "image" : "../../../../../tiled/packed/objects/playerstationconsole.png" > }, > "1409" : { > "image" : "../../../../../tiled/packed/objects/hangingbooster.png" > }, 12567a13219,13236 > }, > "1410" : { > "image" : "../../../../../tiled/packed/objects/mechsign.png" > }, > "1411" : { > "image" : "../../../../../tiled/packed/objects/letheiasign.png" > }, > "1412" : { > "image" : "../../../../../tiled/packed/objects/spaceslideshow.png" > }, > "1413" : { > "image" : "../../../../../tiled/packed/objects/telescope.png" > }, > "1414" : { > "image" : "../../../../../tiled/packed/objects/telescope_orientation1.png" > }, > "1415" : { > "image" : "../../../../../tiled/packed/objects/beautifulattempt.png" tilesets\packed\objects-by-category\door.json 7c7 < "tilecount" : 117, --- > "tilecount" : 128, 194a195,221 > "117" : { > "//description" : "This door is made of some sort of bulletproof material. It has a composite rail running through it.", > "//name" : "outpostrailhatch", > "//shortdescription" : "Rail Airlock Hatch", > "imagePositionX" : "-24", > "imagePositionY" : "-8", > "object" : "outpostrailhatch", > "tilesetDirection" : "right" > }, > "118" : { > "//description" : "This door is made of some sort of bulletproof material. It has a composite rail running through it.", > "//name" : "outpostrailairlock", > "//shortdescription" : "Rail Airlock Door", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "outpostrailairlock", > "tilesetDirection" : "right" > }, > "119" : { > "//description" : "This automated door is made of some sort of bulletproof material.", > "//name" : "outposthatchlarge", > "//shortdescription" : "Large Airlock Hatch", > "imagePositionX" : "-24", > "imagePositionY" : "-8", > "object" : "outposthatchlarge", > "tilesetDirection" : "right" > }, 203a231,297 > "120" : { > "//name" : "industrialclassdoor", > "invalid" : "true" > }, > "121" : { > "//description" : "A tough automated door, reinforced to be able to survive intense intergalactic conditions.", > "//name" : "industrialdoor", > "//shortdescription" : "Industrial Door", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "industrialdoor", > "tilesetDirection" : "right" > }, > "122" : { > "//description" : "A large, sleek automated hatch, made from the same materials found on the exterior of space stations.", > "//name" : "stationhatch", > "//shortdescription" : "Station Hatch", > "imagePositionX" : "-24", > "imagePositionY" : "-8", > "object" : "stationhatch", > "tilesetDirection" : "right" > }, > "123" : { > "//description" : "A sleek automated door, made from the same materials found on the exterior of space stations.", > "//name" : "stationdoor", > "//shortdescription" : "Station Door", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "stationdoor", > "tilesetDirection" : "right" > }, > "124" : { > "//description" : "A large sleek hatch that has a built-in rail connector for use with elevators.", > "//name" : "stationrailhatch", > "//shortdescription" : "Station Rail Hatch", > "imagePositionX" : "-24", > "imagePositionY" : "-8", > "object" : "stationrailhatch", > "tilesetDirection" : "right" > }, > "125" : { > "//description" : "A large, sleek automated door, made from the same materials found on the exterior of space stations.", > "//name" : "stationdoorlarge", > "//shortdescription" : "Station Large Door", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "stationdoorlarge", > "tilesetDirection" : "right" > }, > "126" : { > "//description" : "This door forms an airtight seal when closed.", > "//name" : "astrodoor", > "//shortdescription" : "Astro Door", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "astrodoor", > "tilesetDirection" : "right" > }, > "127" : { > "//description" : "A purple door with an eye, fit for an evil cult.", > "//name" : "cultistdoor", > "//shortdescription" : "Cultist Door", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "cultistdoor", > "tilesetDirection" : "right" > }, 412c506 < "//shortdescription" : "Airlock Door", --- > "//shortdescription" : "Pressurised Airlock Door", 638c732 < "//description" : "This door is made of some sort of bulletproof material.", --- > "//description" : "This automated door is made of some sort of bulletproof material.", 640c734 < "//shortdescription" : "Large Airlock", --- > "//shortdescription" : "Large Airlock Door", 770c864 < "//description" : "This door is made of some sort of bulletproof material.", --- > "//description" : "This automated door is made of some sort of bulletproof material.", 772c866 < "//shortdescription" : "Small Airlock", --- > "//shortdescription" : "Small Airlock Door", 901c995 < "//shortdescription" : "Airlock Hatch", --- > "//shortdescription" : "Pressurised Airlock Hatch", 1067a1162,1170 > "117" : { > "image" : "../../../../../tiled/packed/objects/outpostrailhatch.png" > }, > "118" : { > "image" : "../../../../../tiled/packed/objects/outpostrailairlock.png" > }, > "119" : { > "image" : "../../../../../tiled/packed/objects/outposthatchlarge.png" > }, 1069a1173,1196 > }, > "120" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "121" : { > "image" : "../../../../../tiled/packed/objects/industrialdoor.png" > }, > "122" : { > "image" : "../../../../../tiled/packed/objects/stationhatch.png" > }, > "123" : { > "image" : "../../../../../tiled/packed/objects/stationdoor.png" > }, > "124" : { > "image" : "../../../../../tiled/packed/objects/stationrailhatch.png" > }, > "125" : { > "image" : "../../../../../tiled/packed/objects/stationdoorlarge.png" > }, > "126" : { > "image" : "../../../../../tiled/packed/objects/astrodoor.png" > }, > "127" : { > "image" : "../../../../../tiled/packed/objects/cultistdoor.png" tilesets\packed\objects-by-category\farmable.json 191d190 < "//description" : "No one knows how this sword got here. Pull it out, it could be legendary!", 193,197c192 < "//shortdescription" : "Swordstone", < "imagePositionX" : "0", < "imagePositionY" : "0", < "object" : "wildswordstoneseed", < "tilesetDirection" : "right" --- > "invalid" : "true" 551d545 < "//description" : "No one knows how this sword got here. Pull it out, it could be legendary!", 553,557c547 < "//shortdescription" : "Swordstoneseed", < "imagePositionX" : "0", < "imagePositionY" : "0", < "object" : "swordstoneseed", < "tilesetDirection" : "right" --- > "invalid" : "true" 748c738 < "image" : "../../../../../tiled/packed/objects/wildswordstoneseed.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" 868c858 < "image" : "../../../../../tiled/packed/objects/swordstoneseed.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" tilesets\packed\objects-by-category\furniture.json 7c7 < "tilecount" : 333, --- > "tilecount" : 346, 2293a2294,2346 > "333" : { > "//name" : "industrialclasschair", > "invalid" : "true" > }, > "334" : { > "//name" : "industrialclasstable", > "invalid" : "true" > }, > "335" : { > "//description" : "A solid metal chair with only the slightest bit of padding.", > "//name" : "industrialchair", > "//shortdescription" : "Industrial Chair", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "industrialchair", > "tilesetDirection" : "right" > }, > "336" : { > "//description" : "A cold metal table, built to survive turbulent trips.", > "//name" : "industrialtable", > "//shortdescription" : "Industrial Table", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "industrialtable", > "tilesetDirection" : "right" > }, > "337" : { > "//description" : "A cheap bed with a sturdy metal frame. It doesn't seem very comfortable.", > "//name" : "industrialbed", > "//shortdescription" : "Industrial Bed", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "industrialbed", > "tilesetDirection" : "right" > }, > "338" : { > "//description" : "A round heavy metal table.", > "//name" : "stationtable", > "//shortdescription" : "Station Table", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "stationtable", > "tilesetDirection" : "right" > }, > "339" : { > "//description" : "A curved, formal looking metal chair.", > "//name" : "stationchair", > "//shortdescription" : "Station Chair", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "stationchair", > "tilesetDirection" : "right" > }, 2302a2356,2409 > "340" : { > "//description" : "A sleek metal bench.", > "//name" : "stationbench", > "//shortdescription" : "Station Bench", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "stationbench", > "tilesetDirection" : "right" > }, > "341" : { > "//description" : "A modern chair design, commonly found inside spaceships.", > "//name" : "astrochair", > "//shortdescription" : "Astro Chair", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "astrochair", > "tilesetDirection" : "right" > }, > "342" : { > "//description" : "A solid, floor mounted working surface.", > "//name" : "astrotable", > "//shortdescription" : "Astro Table", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "astrotable", > "tilesetDirection" : "right" > }, > "343" : { > "//description" : "A bed which is designed to perform medical scans.", > "//name" : "stationmedscanner", > "//shortdescription" : "Station Medical Scanner", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "stationmedscanner", > "tilesetDirection" : "right" > }, > "344" : { > "//description" : "A metal bar with with a smoothly polished surface.", > "//name" : "spacebarbottom", > "//shortdescription" : "Space Bar", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "spacebarbottom", > "tilesetDirection" : "right" > }, > "345" : { > "//description" : "A legendary testament to early space travel.", > "//name" : "lunarlander", > "//shortdescription" : "Lunar Lander", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "lunarlander", > "tilesetDirection" : "right" > }, 3676a3784,3804 > "333" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "334" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "335" : { > "image" : "../../../../../tiled/packed/objects/industrialchair.png" > }, > "336" : { > "image" : "../../../../../tiled/packed/objects/industrialtable.png" > }, > "337" : { > "image" : "../../../../../tiled/packed/objects/industrialbed.png" > }, > "338" : { > "image" : "../../../../../tiled/packed/objects/stationtable.png" > }, > "339" : { > "image" : "../../../../../tiled/packed/objects/stationchair.png" > }, 3678a3807,3824 > }, > "340" : { > "image" : "../../../../../tiled/packed/objects/stationbench.png" > }, > "341" : { > "image" : "../../../../../tiled/packed/objects/astrochair.png" > }, > "342" : { > "image" : "../../../../../tiled/packed/objects/astrotable.png" > }, > "343" : { > "image" : "../../../../../tiled/packed/objects/stationmedscanner.png" > }, > "344" : { > "image" : "../../../../../tiled/packed/objects/spacebarbottom.png" > }, > "345" : { > "image" : "../../../../../tiled/packed/objects/lunarlander.png" tilesets\packed\objects-by-category\light.json 7c7 < "tilecount" : 421, --- > "tilecount" : 442, 738,739c738,739 < "imagePositionX" : "-8", < "imagePositionY" : "0", --- > "imagePositionX" : "0", > "imagePositionY" : "-8", 756,757c756,757 < "imagePositionX" : "0", < "imagePositionY" : "-8", --- > "imagePositionX" : "-8", > "imagePositionY" : "0", 1063c1063 < "//description" : "A string of small, twinkling fairy lights.", --- > "//description" : "This string of small, twinkling holiday lights is the perfect way to get festive.", 1065c1065 < "//shortdescription" : "Fairy Lights", --- > "//shortdescription" : "Holiday Lights", 2284c2284 < "//description" : "A string of small, twinkling fairy lights.", --- > "//description" : "This string of small, twinkling holiday lights is the perfect way to get festive.", 2286c2286 < "//shortdescription" : "Fairy Lights", --- > "//shortdescription" : "Holiday Lights", 2293c2293 < "//description" : "A string of small, twinkling fairy lights.", --- > "//description" : "This string of small, twinkling holiday lights is the perfect way to get festive.", 2295c2295 < "//shortdescription" : "Fairy Lights", --- > "//shortdescription" : "Holiday Lights", 2557c2557,2558 < "object" : "flickeringfluorescentlight" --- > "object" : "flickeringfluorescentlight", > "tilesetDirection" : "right" 2655c2656,2657 < "object" : "flickeringfluorescentlight" --- > "object" : "flickeringfluorescentlight", > "tilesetDirection" : "right" 2753c2755,2756 < "object" : "flickeringfluorescentlight" --- > "object" : "flickeringfluorescentlight", > "tilesetDirection" : "right" 3152a3156,3231 > "421" : { > "//description" : "This fluorescent light has seen better days.", > "//name" : "flickeringfluorescentlight_orientation3", > "//shortdescription" : "Damaged Fluorescent Light", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "flickeringfluorescentlight", > "tilesetDirection" : "right" > }, > "422" : { > "//description" : "This fluorescent light has seen better days.", > "//name" : "flickeringfluorescentlight_orientation4", > "//shortdescription" : "Damaged Fluorescent Light", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "flickeringfluorescentlight", > "tilesetDirection" : "right" > }, > "423" : { > "//name" : "industrialclasslight", > "invalid" : "true" > }, > "424" : { > "//description" : "A metal wall light which emits a sickly orange glow.", > "//name" : "industriallight", > "//shortdescription" : "Industrial Light", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "industriallight", > "tilesetDirection" : "right" > }, > "425" : { > "//description" : "A tiny wall light.", > "//name" : "underwaterlightsmall", > "//shortdescription" : "Small Waterproof Light", > "imagePositionX" : "0", > "imagePositionY" : "0", > "object" : "underwaterlightsmall", > "tilesetDirection" : "right" > }, > "426" : { > "//description" : "A sign advertising Numi, a famous mascot from a Hylotl children's cartoon.", > "//name" : "numisign", > "//shortdescription" : "Numi Sign", > "imagePositionX" : "-16", > "imagePositionY" : "-16", > "object" : "numisign", > "tilesetDirection" : "right" > }, > "427" : { > "//description" : "A long industrial looking fluorescent light.", > "//name" : "stationlighth", > "//shortdescription" : "Wide Station Light", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "stationlighth", > "tilesetDirection" : "right" > }, > "428" : { > "//description" : "This guidance beacon marks the position of a landing bay.", > "//name" : "mechbeacon", > "//shortdescription" : "Landing Beacon", > "imagePositionX" : "-16", > "imagePositionY" : "-16", > "object" : "mechbeacon", > "tilesetDirection" : "right" > }, > "429" : { > "//description" : "A long industrial looking fluorescent light.", > "//name" : "stationlightv", > "//shortdescription" : "Tall Station Light", > "imagePositionX" : "0", > "imagePositionY" : "-16", > "object" : "stationlightv", > "tilesetDirection" : "right" > }, 3161a3241,3330 > "430" : { > "//description" : "A ceiling mounted utility lantern.", > "//name" : "astrolight", > "//shortdescription" : "Astro Light", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "astrolight", > "tilesetDirection" : "right" > }, > "431" : { > "//description" : "I wonder how quickly that would cook a burger.", > "//name" : "encountersmallboosterflame", > "//shortdescription" : "Damaging Small Booster Flame", > "imagePositionX" : "-16", > "imagePositionY" : "-24", > "object" : "encountersmallboosterflame", > "tilesetDirection" : "right" > }, > "432" : { > "//description" : "I wonder how quickly that would cook a burger.", > "//name" : "encountersmallboosterflame_orientation1", > "//shortdescription" : "Damaging Small Booster Flame", > "imagePositionX" : "-16", > "imagePositionY" : "-24", > "object" : "encountersmallboosterflame", > "tilesetDirection" : "right" > }, > "433" : { > "//description" : "I wonder how quickly that would cook a burger.", > "//name" : "encounterboosterflame", > "//shortdescription" : "Damaging Booster Flame", > "imagePositionX" : "-40", > "imagePositionY" : "-32", > "object" : "encounterboosterflame", > "tilesetDirection" : "right" > }, > "434" : { > "//description" : "I wonder how quickly that would cook a burger.", > "//name" : "encountersmallboosterflame2", > "//shortdescription" : "Damaging Small Booster Flame", > "imagePositionX" : "-16", > "imagePositionY" : "-24", > "object" : "encountersmallboosterflame2", > "tilesetDirection" : "right" > }, > "435" : { > "//description" : "I wonder how quickly that would cook a burger.", > "//name" : "encountersmallboosterflame2_orientation1", > "//shortdescription" : "Damaging Small Booster Flame", > "imagePositionX" : "-16", > "imagePositionY" : "-24", > "object" : "encountersmallboosterflame2", > "tilesetDirection" : "right" > }, > "436" : { > "//description" : "I wonder how quickly that would cook a burger.", > "//name" : "encountersmallboosterflame_orientation2", > "//shortdescription" : "Damaging Small Booster Flame", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "encountersmallboosterflame", > "tilesetDirection" : "right" > }, > "437" : { > "//description" : "I wonder how quickly that would cook a burger.", > "//name" : "encountersmallboosterflame_orientation3", > "//shortdescription" : "Damaging Small Booster Flame", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "encountersmallboosterflame", > "tilesetDirection" : "right" > }, > "438" : { > "//description" : "I wonder how quickly that would cook a burger.", > "//name" : "encountersmallboosterflame2_orientation2", > "//shortdescription" : "Damaging Small Booster Flame", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "encountersmallboosterflame2", > "tilesetDirection" : "right" > }, > "439" : { > "//description" : "I wonder how quickly that would cook a burger.", > "//name" : "encountersmallboosterflame2_orientation3", > "//shortdescription" : "Damaging Small Booster Flame", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "encountersmallboosterflame2", > "tilesetDirection" : "right" > }, 3170a3340,3357 > "440" : { > "//description" : "I wonder how quickly that would cook a burger.", > "//name" : "encounterboosterflamehuman", > "//shortdescription" : "Damaging Booster Flame", > "imagePositionX" : "-32", > "imagePositionY" : "-48", > "object" : "encounterboosterflamehuman", > "tilesetDirection" : "right" > }, > "441" : { > "//description" : "I wonder how quickly that would cook a burger.", > "//name" : "encounterbigboosterflame", > "//shortdescription" : "Damaging Booster Flame", > "imagePositionX" : "-32", > "imagePositionY" : "-32", > "object" : "encounterbigboosterflame", > "tilesetDirection" : "right" > }, 4771a4959,4985 > "421" : { > "image" : "../../../../../tiled/packed/objects/flickeringfluorescentlight_orientation3.png" > }, > "422" : { > "image" : "../../../../../tiled/packed/objects/flickeringfluorescentlight_orientation4.png" > }, > "423" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "424" : { > "image" : "../../../../../tiled/packed/objects/industriallight.png" > }, > "425" : { > "image" : "../../../../../tiled/packed/objects/underwaterlightsmall.png" > }, > "426" : { > "image" : "../../../../../tiled/packed/objects/numisign.png" > }, > "427" : { > "image" : "../../../../../tiled/packed/objects/stationlighth.png" > }, > "428" : { > "image" : "../../../../../tiled/packed/objects/mechbeacon.png" > }, > "429" : { > "image" : "../../../../../tiled/packed/objects/stationlightv.png" > }, 4774a4989,5018 > "430" : { > "image" : "../../../../../tiled/packed/objects/astrolight.png" > }, > "431" : { > "image" : "../../../../../tiled/packed/objects/encountersmallboosterflame.png" > }, > "432" : { > "image" : "../../../../../tiled/packed/objects/encountersmallboosterflame_orientation1.png" > }, > "433" : { > "image" : "../../../../../tiled/packed/objects/encounterboosterflame.png" > }, > "434" : { > "image" : "../../../../../tiled/packed/objects/encountersmallboosterflame2.png" > }, > "435" : { > "image" : "../../../../../tiled/packed/objects/encountersmallboosterflame2_orientation1.png" > }, > "436" : { > "image" : "../../../../../tiled/packed/objects/encountersmallboosterflame_orientation2.png" > }, > "437" : { > "image" : "../../../../../tiled/packed/objects/encountersmallboosterflame_orientation3.png" > }, > "438" : { > "image" : "../../../../../tiled/packed/objects/encountersmallboosterflame2_orientation2.png" > }, > "439" : { > "image" : "../../../../../tiled/packed/objects/encountersmallboosterflame2_orientation3.png" > }, 4776a5021,5026 > }, > "440" : { > "image" : "../../../../../tiled/packed/objects/encounterboosterflamehuman.png" > }, > "441" : { > "image" : "../../../../../tiled/packed/objects/encounterbigboosterflame.png" tilesets\packed\objects-by-category\other.json 7c7 < "tilecount" : 298, --- > "tilecount" : 303, 1680a1681,1698 > "298" : { > "//description" : "A massive ancient machine. What could it be used for?", > "//name" : "terraforge", > "//shortdescription" : "Terraforge", > "imagePositionX" : "-56", > "imagePositionY" : "0", > "object" : "terraforge", > "tilesetDirection" : "right" > }, > "299" : { > "//description" : "Equip and customise your personal mech!", > "//name" : "mechassemblystation", > "//shortdescription" : "Mech Assembly Station", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "mechassemblystation", > "tilesetDirection" : "right" > }, 1693a1712,1738 > "300" : { > "//description" : "A vending machine, there are some quality snacks in here.", > "//name" : "stationvendingmachine", > "//shortdescription" : "Station Vending Machine", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "stationvendingmachine", > "tilesetDirection" : "right" > }, > "301" : { > "//description" : "This vending machine is empty, I guess the crew had a taste for soda.", > "//name" : "wreckvendingmachine", > "//shortdescription" : "Wrecked Vending Machine", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "wreckvendingmachine", > "tilesetDirection" : "right" > }, > "302" : { > "//description" : "This practice target outputs a wire signal until broken.", > "//name" : "wiredtarget", > "//shortdescription" : "Wired Target", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "wiredtarget", > "tilesetDirection" : "right" > }, 2969a3015,3020 > "298" : { > "image" : "../../../../../tiled/packed/objects/terraforge.png" > }, > "299" : { > "image" : "../../../../../tiled/packed/objects/mechassemblystation.png" > }, 2974a3026,3034 > }, > "300" : { > "image" : "../../../../../tiled/packed/objects/stationvendingmachine.png" > }, > "301" : { > "image" : "../../../../../tiled/packed/objects/wreckvendingmachine.png" > }, > "302" : { > "image" : "../../../../../tiled/packed/objects/wiredtarget.png" tilesets\packed\objects-by-category\pot.json 100d99 < "//description" : "A sinister light from Heck.", 102,105c101 < "//shortdescription" : "Heck Light", < "imagePositionX" : "0", < "imagePositionY" : "0", < "object" : "hecklight2" --- > "invalid" : "true" 108d103 < "//description" : "A sinister light from Heck.", 110,113c105 < "//shortdescription" : "Heck Light", < "imagePositionX" : "0", < "imagePositionY" : "0", < "object" : "hecklight2" --- > "invalid" : "true" 125d116 < "//description" : "A sinister light from Heck.", 127,130c118 < "//shortdescription" : "Heck Light", < "imagePositionX" : "0", < "imagePositionY" : "0", < "object" : "hecklight2" --- > "invalid" : "true" 133d120 < "//description" : "A sinister light from Heck.", 135,138c122 < "//shortdescription" : "Heck Light", < "imagePositionX" : "0", < "imagePositionY" : "0", < "object" : "hecklight2" --- > "invalid" : "true" 149d132 < "//description" : "A disgusting blob of seeping flesh.", 151,155c134 < "//shortdescription" : "Heck Bush", < "imagePositionX" : "0", < "imagePositionY" : "0", < "object" : "heckbush5", < "tilesetDirection" : "right" --- > "invalid" : "true" 203d181 < "//description" : "A disgusting blob of seeping flesh.", 205,209c183 < "//shortdescription" : "Heck Bush", < "imagePositionX" : "0", < "imagePositionY" : "0", < "object" : "heckbush3", < "tilesetDirection" : "right" --- > "invalid" : "true" 592d565 < "//description" : "A disgusting blob of seeping flesh.", 594,598c567 < "//shortdescription" : "Heck Bush", < "imagePositionX" : "0", < "imagePositionY" : "0", < "object" : "heckbush8", < "tilesetDirection" : "right" --- > "invalid" : "true" 619d587 < "//description" : "A pulsating, fleshy light. A light made of flesh. A-", 621,625c589 < "//shortdescription" : "Heck Light", < "imagePositionX" : "-8", < "imagePositionY" : "0", < "object" : "hecklight1", < "tilesetDirection" : "right" --- > "invalid" : "true" 628d591 < "//description" : "A pulsating, fleshy light. A light made of flesh. A-", 630,634c593 < "//shortdescription" : "Heck Light", < "imagePositionX" : "-8", < "imagePositionY" : "0", < "object" : "hecklight1", < "tilesetDirection" : "right" --- > "invalid" : "true" 637d595 < "//description" : "A pulsating, fleshy light. A light made of flesh. A-", 639,643c597 < "//shortdescription" : "Heck Light", < "imagePositionX" : "-8", < "imagePositionY" : "0", < "object" : "hecklight1", < "tilesetDirection" : "right" --- > "invalid" : "true" 646d599 < "//description" : "A pulsating, fleshy light. A light made of flesh. A-", 648,652c601 < "//shortdescription" : "Heck Light", < "imagePositionX" : "-8", < "imagePositionY" : "0", < "object" : "hecklight1", < "tilesetDirection" : "left" --- > "invalid" : "true" 655d603 < "//description" : "A pulsating, fleshy light. A light made of flesh. A-", 657,661c605 < "//shortdescription" : "Heck Light", < "imagePositionX" : "-8", < "imagePositionY" : "0", < "object" : "hecklight1", < "tilesetDirection" : "left" --- > "invalid" : "true" 691d634 < "//description" : "A disgusting blob of seeping flesh.", 693,697c636 < "//shortdescription" : "Heck Bush", < "imagePositionX" : "0", < "imagePositionY" : "0", < "object" : "heckbush4", < "tilesetDirection" : "right" --- > "invalid" : "true" 787d725 < "//description" : "A disgusting blob of seeping flesh.", 789,793c727 < "//shortdescription" : "Heck Bush", < "imagePositionX" : "0", < "imagePositionY" : "0", < "object" : "heckbush10", < "tilesetDirection" : "right" --- > "invalid" : "true" 952d885 < "//description" : "A disgusting blob of seeping flesh.", 954,958c887 < "//shortdescription" : "Heck Bush", < "imagePositionX" : "0", < "imagePositionY" : "0", < "object" : "heckbush2", < "tilesetDirection" : "right" --- > "invalid" : "true" 1289d1217 < "//description" : "A disgusting blob of seeping flesh.", 1291,1295c1219 < "//shortdescription" : "Heck Bush", < "imagePositionX" : "0", < "imagePositionY" : "0", < "object" : "heckbush1", < "tilesetDirection" : "right" --- > "invalid" : "true" 1945d1868 < "//description" : "A disgusting blob of seeping flesh.", 1947,1951c1870 < "//shortdescription" : "Heck Bush", < "imagePositionX" : "0", < "imagePositionY" : "0", < "object" : "heckbush9", < "tilesetDirection" : "right" --- > "invalid" : "true" 2147d2065 < "//description" : "A disgusting blob of seeping flesh.", 2149,2153c2067 < "//shortdescription" : "Heck Bush", < "imagePositionX" : "0", < "imagePositionY" : "0", < "object" : "heckbush7", < "tilesetDirection" : "right" --- > "invalid" : "true" 2470d2383 < "//description" : "A disgusting blob of seeping flesh.", 2472,2476c2385 < "//shortdescription" : "Heck Bush", < "imagePositionX" : "0", < "imagePositionY" : "0", < "object" : "heckbush6", < "tilesetDirection" : "right" --- > "invalid" : "true" 2608c2517 < "image" : "../../../../../tiled/packed/objects/hecklight2.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" 2611c2520 < "image" : "../../../../../tiled/packed/objects/hecklight2_orientation2.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" 2617c2526 < "image" : "../../../../../tiled/packed/objects/hecklight2_orientation3.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" 2620c2529 < "image" : "../../../../../tiled/packed/objects/hecklight2_orientation4.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" 2626c2535 < "image" : "../../../../../tiled/packed/objects/heckbush5.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" 2644c2553 < "image" : "../../../../../tiled/packed/objects/heckbush3.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" 2779c2688 < "image" : "../../../../../tiled/packed/objects/heckbush8.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" 2788c2697 < "image" : "../../../../../tiled/packed/objects/hecklight1.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" 2791c2700 < "image" : "../../../../../tiled/packed/objects/hecklight1_orientation2.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" 2794c2703 < "image" : "../../../../../tiled/packed/objects/hecklight1_orientation3.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" 2797c2706 < "image" : "../../../../../tiled/packed/objects/hecklight1_orientation4.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" 2800c2709 < "image" : "../../../../../tiled/packed/objects/hecklight1_orientation5.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" 2812c2721 < "image" : "../../../../../tiled/packed/objects/heckbush4.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" 2845c2754 < "image" : "../../../../../tiled/packed/objects/heckbush10.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" 2902c2811 < "image" : "../../../../../tiled/packed/objects/heckbush2.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" 3019c2928 < "image" : "../../../../../tiled/packed/objects/heckbush1.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" 3247c3156 < "image" : "../../../../../tiled/packed/objects/heckbush9.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" 3316c3225 < "image" : "../../../../../tiled/packed/objects/heckbush7.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" 3430c3339 < "image" : "../../../../../tiled/packed/objects/heckbush6.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" tilesets\packed\objects-by-category\railpoint.json 7c7 < "tilecount" : 4, --- > "tilecount" : 5, 44a45,53 > }, > "4" : { > "//description" : "Calls and stops rail trams", > "//name" : "railtramstop", > "//shortdescription" : "Rail Tram Stop", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "railtramstop", > "tilesetDirection" : "right" 58a68,70 > }, > "4" : { > "image" : "../../../../../tiled/packed/objects/railtramstop.png" tilesets\packed\objects-by-category\storage.json 7c7 < "tilecount" : 221, --- > "tilecount" : 231, 1191a1192,1255 > "221" : { > "//name" : "industrialclasscrate", > "invalid" : "true" > }, > "222" : { > "//name" : "industrialclasscanister", > "invalid" : "true" > }, > "223" : { > "//name" : "industrialclassstoragelocker", > "invalid" : "true" > }, > "224" : { > "//description" : "A sealed metal canister, that might be used to store hazardous liquids.", > "//name" : "industrialcanister", > "//shortdescription" : "Industrial Canister", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "industrialcanister", > "tilesetDirection" : "right" > }, > "225" : { > "//description" : "A pressurised cargo crate, designed to withstand the harsh conditions of space travel.", > "//name" : "industrialcrate", > "//shortdescription" : "Industrial Crate", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "industrialcrate", > "tilesetDirection" : "right" > }, > "226" : { > "//description" : "A wall mounted locker, complete with hazard stripes and a red light.", > "//name" : "industrialstoragelocker", > "//shortdescription" : "Industrial Storage Locker", > "imagePositionX" : "-16", > "imagePositionY" : "-8", > "object" : "industrialstoragelocker" > }, > "227" : { > "//description" : "A shipping crate, designed to ship space goods.", > "//name" : "stationcrate", > "//shortdescription" : "Station Crate", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "stationcrate", > "tilesetDirection" : "right" > }, > "228" : { > "//description" : "A modern metal cabinet with floor mounting brackets.", > "//name" : "astrocabinet", > "//shortdescription" : "Astro Cabinet", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "astrocabinet", > "tilesetDirection" : "right" > }, > "229" : { > "//description" : "An astro panel storage locker.", > "//name" : "astrostoragelocker", > "//shortdescription" : "Astro Storage Locker", > "imagePositionX" : "-16", > "imagePositionY" : "-8", > "object" : "astrostoragelocker" > }, 1200a1265,1273 > "230" : { > "//description" : "A large container specialized for space transport.", > "//name" : "astrocrate", > "//shortdescription" : "Astro Crate", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "astrocrate", > "tilesetDirection" : "right" > }, 2299a2373,2399 > "221" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "222" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "223" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "224" : { > "image" : "../../../../../tiled/packed/objects/industrialcanister.png" > }, > "225" : { > "image" : "../../../../../tiled/packed/objects/industrialcrate.png" > }, > "226" : { > "image" : "../../../../../tiled/packed/objects/industrialstoragelocker.png" > }, > "227" : { > "image" : "../../../../../tiled/packed/objects/stationcrate.png" > }, > "228" : { > "image" : "../../../../../tiled/packed/objects/astrocabinet.png" > }, > "229" : { > "image" : "../../../../../tiled/packed/objects/astrostoragelocker.png" > }, 2301a2402,2404 > }, > "230" : { > "image" : "../../../../../tiled/packed/objects/astrocrate.png" tilesets\packed\objects-by-category\teleporter.json 7c7 < "tilecount" : 32, --- > "tilecount" : 40, 143c143 < "//description" : "The flag of the Protectorate. Use ^green;[E]^white; to bookmark a teleportation location.", --- > "//description" : "The human flag. Use ^green;[E]^white; to bookmark a teleportation location.", 152c152 < "//description" : "The flag of the Protectorate. Use ^green;[E]^white; to bookmark a teleportation location.", --- > "//description" : "The human flag. Use ^green;[E]^white; to bookmark a teleportation location.", 228a229,292 > "32" : { > "//description" : "Trusty teleporter, what would we do without you?", > "//name" : "humanteleporter", > "//shortdescription" : "Teleporter", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "humanteleporter" > }, > "33" : { > "//description" : "Trusty teleporter, what would we do without you?", > "//name" : "hylotlteleporter", > "//shortdescription" : "Teleporter", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "hylotlteleporter" > }, > "34" : { > "//description" : "Trusty teleporter, what would we do without you?", > "//name" : "novakidteleporter", > "//shortdescription" : "Teleporter", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "novakidteleporter" > }, > "35" : { > "//description" : "Trusty teleporter, what would we do without you?", > "//name" : "floranteleporter", > "//shortdescription" : "Teleporter", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "floranteleporter" > }, > "36" : { > "//description" : "Trusty teleporter, what would we do without you?", > "//name" : "glitchteleporter", > "//shortdescription" : "Teleporter", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "glitchteleporter" > }, > "37" : { > "//description" : "Trusty teleporter, what would we do without you?", > "//name" : "avianteleporter", > "//shortdescription" : "Teleporter", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "avianteleporter" > }, > "38" : { > "//description" : "Trusty teleporter, what would we do without you?", > "//name" : "teleporter", > "//shortdescription" : "Teleporter", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "teleporter" > }, > "39" : { > "//description" : "A personal teleporter, connects to bookmarked locations.", > "//name" : "remoteteleporter", > "//shortdescription" : "Outpost Teleporter", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "remoteteleporter" > }, 356a421,444 > }, > "32" : { > "image" : "../../../../../tiled/packed/objects/humanteleporter.png" > }, > "33" : { > "image" : "../../../../../tiled/packed/objects/hylotlteleporter.png" > }, > "34" : { > "image" : "../../../../../tiled/packed/objects/novakidteleporter.png" > }, > "35" : { > "image" : "../../../../../tiled/packed/objects/floranteleporter.png" > }, > "36" : { > "image" : "../../../../../tiled/packed/objects/glitchteleporter.png" > }, > "37" : { > "image" : "../../../../../tiled/packed/objects/avianteleporter.png" > }, > "38" : { > "image" : "../../../../../tiled/packed/objects/teleporter.png" > }, > "39" : { > "image" : "../../../../../tiled/packed/objects/remoteteleporter.png" tilesets\packed\objects-by-category\teleportmarker.json 65c65 < "//description" : "The flag of the Protectorate. Use ^green;[E]^white; to bookmark a teleportation location.", --- > "//description" : "The human flag. Use ^green;[E]^white; to bookmark a teleportation location.", 74c74 < "//description" : "The flag of the Protectorate. Use ^green;[E]^white; to bookmark a teleportation location.", --- > "//description" : "The human flag. Use ^green;[E]^white; to bookmark a teleportation location.", tilesets\packed\objects-by-category\wire.json 7c7 < "tilecount" : 204, --- > "tilecount" : 217, 371a372 > "//description" : "...", 373c374,378 < "invalid" : "true" --- > "//shortdescription" : "Invisible Sound Source", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "invisiblesound", > "tilesetDirection" : "right" 1023a1029,1072 > "204" : { > "//name" : "industrialclasscomputer", > "invalid" : "true" > }, > "205" : { > "//name" : "industrialclassdisplay", > "invalid" : "true" > }, > "206" : { > "//description" : "A display which appears to be connected to some sort of radar.", > "//name" : "industrialdisplay", > "//shortdescription" : "Industrial Display", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "industrialdisplay", > "tilesetDirection" : "right" > }, > "207" : { > "//description" : "An old metal computer tower. Untidy cables hang out of its back.", > "//name" : "industrialcomputer", > "//shortdescription" : "Industrial Computer", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "industrialcomputer", > "tilesetDirection" : "right" > }, > "208" : { > "//description" : "This energy field can contain both atmosphere and artificial gravity.", > "//name" : "dockingfield", > "//shortdescription" : "Docking Field", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "dockingfield", > "tilesetDirection" : "right" > }, > "209" : { > "//description" : "This energy field can contain both atmosphere and artificial gravity.", > "//name" : "dockingfield_orientation2", > "//shortdescription" : "Docking Field", > "imagePositionX" : "-48", > "imagePositionY" : "0", > "object" : "dockingfield", > "tilesetDirection" : "right" > }, 1031a1081,1143 > "210" : { > "//description" : "This energy field can contain both atmosphere and artificial gravity.", > "//name" : "dockingfield_orientation3", > "//shortdescription" : "Docking Field", > "imagePositionX" : "-48", > "imagePositionY" : "0", > "object" : "dockingfield", > "tilesetDirection" : "right" > }, > "211" : { > "//description" : "A small terminal, with a compact display screen.", > "//name" : "stationconsole", > "//shortdescription" : "Station Console", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "stationconsole", > "tilesetDirection" : "right" > }, > "212" : { > "//description" : "A large display built to monitor a variety of devices.", > "//name" : "astroconsole", > "//shortdescription" : "Astro Console", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "astroconsole", > "tilesetDirection" : "right" > }, > "213" : { > "//description" : "This energy field can contain both atmosphere and artificial gravity.", > "//name" : "dockingfieldsmall", > "//shortdescription" : "Docking Field (Small)", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "dockingfieldsmall", > "tilesetDirection" : "right" > }, > "214" : { > "//description" : "This energy field can contain both atmosphere and artificial gravity.", > "//name" : "dockingfieldsmall_orientation2", > "//shortdescription" : "Docking Field (Small)", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "dockingfieldsmall", > "tilesetDirection" : "right" > }, > "215" : { > "//description" : "This energy field can contain both atmosphere and artificial gravity.", > "//name" : "dockingfieldsmall_orientation3", > "//shortdescription" : "Docking Field (Small)", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "dockingfieldsmall", > "tilesetDirection" : "right" > }, > "216" : { > "//description" : "...", > "//name" : "invisiblewallswitch", > "//shortdescription" : "Invisible Wall Switch", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "invisiblewallswitch", > "tilesetDirection" : "right" > }, 1895c2007 < "image" : "../../../../../tiled/packed/../packed/invalid.png" --- > "image" : "../../../../../tiled/packed/objects/invisiblesound.png" 2115a2228,2245 > "204" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "205" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "206" : { > "image" : "../../../../../tiled/packed/objects/industrialdisplay.png" > }, > "207" : { > "image" : "../../../../../tiled/packed/objects/industrialcomputer.png" > }, > "208" : { > "image" : "../../../../../tiled/packed/objects/dockingfield.png" > }, > "209" : { > "image" : "../../../../../tiled/packed/objects/dockingfield_orientation2.png" > }, 2117a2248,2268 > }, > "210" : { > "image" : "../../../../../tiled/packed/objects/dockingfield_orientation3.png" > }, > "211" : { > "image" : "../../../../../tiled/packed/objects/stationconsole.png" > }, > "212" : { > "image" : "../../../../../tiled/packed/objects/astroconsole.png" > }, > "213" : { > "image" : "../../../../../tiled/packed/objects/dockingfieldsmall.png" > }, > "214" : { > "image" : "../../../../../tiled/packed/objects/dockingfieldsmall_orientation2.png" > }, > "215" : { > "image" : "../../../../../tiled/packed/objects/dockingfieldsmall_orientation3.png" > }, > "216" : { > "image" : "../../../../../tiled/packed/objects/invisiblewallswitch.png" tilesets\packed\objects-by-colonytag\apex.json 7c7 < "tilecount" : 182, --- > "tilecount" : 186, 819a820,854 > "182" : { > "//description" : "A fine china bowl.", > "//name" : "classicbowl", > "//shortdescription" : "Classic Bowl", > "imagePositionX" : "0", > "imagePositionY" : "0", > "object" : "classicbowl", > "tilesetDirection" : "right" > }, > "183" : { > "//description" : "A fine china mug.", > "//name" : "classicmug", > "//shortdescription" : "Classic Mug", > "imagePositionX" : "0", > "imagePositionY" : "0", > "object" : "classicmug", > "tilesetDirection" : "right" > }, > "184" : { > "//description" : "This cool computer is making a lot of 'beep boop boop beep' noises.", > "//name" : "apexcoolcomputer_orientation1", > "//shortdescription" : "Cool Computer", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "apexcoolcomputer", > "tilesetDirection" : "right" > }, > "185" : { > "//description" : "A port which modular station expansion pieces can be attached to.", > "//name" : "expansionslot", > "//shortdescription" : "Expansion Slot", > "imagePositionX" : "-16", > "imagePositionY" : "-8", > "object" : "expansionslot" > }, 1875a1911,1922 > }, > "182" : { > "image" : "../../../../../tiled/packed/objects/classicbowl.png" > }, > "183" : { > "image" : "../../../../../tiled/packed/objects/classicmug.png" > }, > "184" : { > "image" : "../../../../../tiled/packed/objects/apexcoolcomputer_orientation1.png" > }, > "185" : { > "image" : "../../../../../tiled/packed/objects/expansionslot.png" tilesets\packed\objects-by-colonytag\apexmansion.json 7c7 < "tilecount" : 58, --- > "tilecount" : 60, 492a493,510 > "58" : { > "//description" : "A fine china bowl.", > "//name" : "classicbowl", > "//shortdescription" : "Classic Bowl", > "imagePositionX" : "0", > "imagePositionY" : "0", > "object" : "classicbowl", > "tilesetDirection" : "right" > }, > "59" : { > "//description" : "A fine china mug.", > "//name" : "classicmug", > "//shortdescription" : "Classic Mug", > "imagePositionX" : "0", > "imagePositionY" : "0", > "object" : "classicmug", > "tilesetDirection" : "right" > }, 691a710,715 > }, > "58" : { > "image" : "../../../../../tiled/packed/objects/classicbowl.png" > }, > "59" : { > "image" : "../../../../../tiled/packed/objects/classicmug.png" tilesets\packed\objects-by-colonytag\apexresearchlab.json 7c7 < "tilecount" : 50, --- > "tilecount" : 51, 412a413,421 > "50" : { > "//description" : "This cool computer is making a lot of 'beep boop boop beep' noises.", > "//name" : "apexcoolcomputer_orientation1", > "//shortdescription" : "Cool Computer", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "apexcoolcomputer", > "tilesetDirection" : "right" > }, 586a596,598 > }, > "50" : { > "image" : "../../../../../tiled/packed/objects/apexcoolcomputer_orientation1.png" tilesets\packed\objects-by-colonytag\christmas.json 277c277 < "//description" : "A holiday pole! Its festively striped.", --- > "//description" : "A holiday pole! It's festively striped.", 393c393 < "//description" : "A string of small, twinkling fairy lights.", --- > "//description" : "This string of small, twinkling holiday lights is the perfect way to get festive.", 395c395 < "//shortdescription" : "Fairy Lights", --- > "//shortdescription" : "Holiday Lights", 402c402 < "//description" : "A string of small, twinkling fairy lights.", --- > "//description" : "This string of small, twinkling holiday lights is the perfect way to get festive.", 404c404 < "//shortdescription" : "Fairy Lights", --- > "//shortdescription" : "Holiday Lights", 411c411 < "//description" : "A string of small, twinkling fairy lights.", --- > "//description" : "This string of small, twinkling holiday lights is the perfect way to get festive.", 413c413 < "//shortdescription" : "Fairy Lights", --- > "//shortdescription" : "Holiday Lights", tilesets\packed\objects-by-colonytag\combat.json 7c7 < "tilecount" : 32, --- > "tilecount" : 33, 238a239,247 > "32" : { > "//description" : "A metal sheet with a target painted on. Perfect for practicing your aim.", > "//name" : "shootingtarget", > "//shortdescription" : "Shooting Target", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "shootingtarget", > "tilesetDirection" : "right" > }, 370a380,382 > }, > "32" : { > "image" : "../../../../../tiled/packed/objects/shootingtarget.png" tilesets\packed\objects-by-colonytag\commerce.json 7c7 < "tilecount" : 132, --- > "tilecount" : 145, 349a350,411 > "132" : { > "//name" : "industrialclasscrate", > "invalid" : "true" > }, > "133" : { > "//name" : "industrialclasstable", > "invalid" : "true" > }, > "134" : { > "//description" : "A cold metal table, built to survive turbulent trips.", > "//name" : "industrialtable", > "//shortdescription" : "Industrial Table", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "industrialtable", > "tilesetDirection" : "right" > }, > "135" : { > "//description" : "A pressurised cargo crate, designed to withstand the harsh conditions of space travel.", > "//name" : "industrialcrate", > "//shortdescription" : "Industrial Crate", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "industrialcrate", > "tilesetDirection" : "right" > }, > "136" : { > "//description" : "A round heavy metal table.", > "//name" : "stationtable", > "//shortdescription" : "Station Table", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "stationtable", > "tilesetDirection" : "right" > }, > "137" : { > "//description" : "A vending machine, there are some quality snacks in here.", > "//name" : "stationvendingmachine", > "//shortdescription" : "Station Vending Machine", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "stationvendingmachine", > "tilesetDirection" : "right" > }, > "138" : { > "//description" : "This vending machine is empty, I guess the crew had a taste for soda.", > "//name" : "wreckvendingmachine", > "//shortdescription" : "Wrecked Vending Machine", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "wreckvendingmachine", > "tilesetDirection" : "right" > }, > "139" : { > "//description" : "A panel which is designed to attach to a space structure or ship.", > "//name" : "stationwallpanel", > "//shortdescription" : "Station Wall Panel", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "stationwallpanel", > "tilesetDirection" : "right" > }, 357a420,463 > "140" : { > "//description" : "A shipping crate, designed to ship space goods.", > "//name" : "stationcrate", > "//shortdescription" : "Station Crate", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "stationcrate", > "tilesetDirection" : "right" > }, > "141" : { > "//description" : "A solid, floor mounted working surface.", > "//name" : "astrotable", > "//shortdescription" : "Astro Table", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "astrotable", > "tilesetDirection" : "right" > }, > "142" : { > "//description" : "A large container specialized for space transport.", > "//name" : "astrocrate", > "//shortdescription" : "Astro Crate", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "astrocrate", > "tilesetDirection" : "right" > }, > "143" : { > "//description" : "A metal bar with with a smoothly polished surface.", > "//name" : "spacebarbottom", > "//shortdescription" : "Space Bar", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "spacebarbottom", > "tilesetDirection" : "right" > }, > "144" : { > "//description" : "A halogen sign for the Letheia corporation.", > "//name" : "letheiasign", > "//shortdescription" : "Letheia Corp Sign", > "imagePositionX" : "-32", > "imagePositionY" : "-8", > "object" : "letheiasign" > }, 1297a1404,1427 > "132" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "133" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "134" : { > "image" : "../../../../../tiled/packed/objects/industrialtable.png" > }, > "135" : { > "image" : "../../../../../tiled/packed/objects/industrialcrate.png" > }, > "136" : { > "image" : "../../../../../tiled/packed/objects/stationtable.png" > }, > "137" : { > "image" : "../../../../../tiled/packed/objects/stationvendingmachine.png" > }, > "138" : { > "image" : "../../../../../tiled/packed/objects/wreckvendingmachine.png" > }, > "139" : { > "image" : "../../../../../tiled/packed/objects/stationwallpanel.png" > }, 1299a1430,1444 > }, > "140" : { > "image" : "../../../../../tiled/packed/objects/stationcrate.png" > }, > "141" : { > "image" : "../../../../../tiled/packed/objects/astrotable.png" > }, > "142" : { > "image" : "../../../../../tiled/packed/objects/astrocrate.png" > }, > "143" : { > "image" : "../../../../../tiled/packed/objects/spacebarbottom.png" > }, > "144" : { > "image" : "../../../../../tiled/packed/objects/letheiasign.png" tilesets\packed\objects-by-colonytag\cooking.json 7c7 < "tilecount" : 32, --- > "tilecount" : 36, 240a241,276 > "32" : { > "//description" : "A fine china plate.", > "//name" : "classicplate", > "//shortdescription" : "Classic Plate", > "imagePositionX" : "0", > "imagePositionY" : "0", > "object" : "classicplate", > "tilesetDirection" : "right" > }, > "33" : { > "//description" : "A soft scent of fruit juice lingers.", > "//name" : "classicglass", > "//shortdescription" : "Crystal Glass", > "imagePositionX" : "0", > "imagePositionY" : "0", > "object" : "classicglass", > "tilesetDirection" : "right" > }, > "34" : { > "//description" : "A fine china bowl.", > "//name" : "classicbowl", > "//shortdescription" : "Classic Bowl", > "imagePositionX" : "0", > "imagePositionY" : "0", > "object" : "classicbowl", > "tilesetDirection" : "right" > }, > "35" : { > "//description" : "A fine china mug.", > "//name" : "classicmug", > "//shortdescription" : "Classic Mug", > "imagePositionX" : "0", > "imagePositionY" : "0", > "object" : "classicmug", > "tilesetDirection" : "right" > }, 373a410,421 > }, > "32" : { > "image" : "../../../../../tiled/packed/objects/classicplate.png" > }, > "33" : { > "image" : "../../../../../tiled/packed/objects/classicglass.png" > }, > "34" : { > "image" : "../../../../../tiled/packed/objects/classicbowl.png" > }, > "35" : { > "image" : "../../../../../tiled/packed/objects/classicmug.png" tilesets\packed\objects-by-colonytag\crafting.json 7c7 < "tilecount" : 39, --- > "tilecount" : 40, 249a250,258 > "39" : { > "//description" : "Used to produce modular mech components.", > "//name" : "mechcraftingtable", > "//shortdescription" : "^orange;Mech Part Crafting Table^white;", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "mechcraftingtable", > "tilesetDirection" : "right" > }, 388a398,400 > }, > "39" : { > "image" : "../../../../../tiled/packed/objects/mechcraftingtable.png" tilesets\packed\objects-by-colonytag\door.json 7c7 < "tilecount" : 106, --- > "tilecount" : 119, 87a88,118 > "106" : { > "//description" : "This door is made of some sort of bulletproof material. It has a composite rail running through it.", > "//name" : "outpostrailhatch", > "//shortdescription" : "Rail Airlock Hatch", > "imagePositionX" : "-24", > "imagePositionY" : "-8", > "object" : "outpostrailhatch", > "tilesetDirection" : "right" > }, > "107" : { > "//description" : "This door is made of some sort of bulletproof material. It has a composite rail running through it.", > "//name" : "outpostrailairlock", > "//shortdescription" : "Rail Airlock Door", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "outpostrailairlock", > "tilesetDirection" : "right" > }, > "108" : { > "//description" : "This automated door is made of some sort of bulletproof material.", > "//name" : "outposthatchlarge", > "//shortdescription" : "Large Airlock Hatch", > "imagePositionX" : "-24", > "imagePositionY" : "-8", > "object" : "outposthatchlarge", > "tilesetDirection" : "right" > }, > "109" : { > "//name" : "industrialclassdoor", > "invalid" : "true" > }, 95a127,206 > "110" : { > "//description" : "A tough automated door, reinforced to be able to survive intense intergalactic conditions.", > "//name" : "industrialdoor", > "//shortdescription" : "Industrial Door", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "industrialdoor", > "tilesetDirection" : "right" > }, > "111" : { > "//description" : "A large, sleek automated hatch, made from the same materials found on the exterior of space stations.", > "//name" : "stationhatch", > "//shortdescription" : "Station Hatch", > "imagePositionX" : "-24", > "imagePositionY" : "-8", > "object" : "stationhatch", > "tilesetDirection" : "right" > }, > "112" : { > "//description" : "A sleek automated door, made from the same materials found on the exterior of space stations.", > "//name" : "stationdoor", > "//shortdescription" : "Station Door", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "stationdoor", > "tilesetDirection" : "right" > }, > "113" : { > "//description" : "A large sleek hatch that has a built-in rail connector for use with elevators.", > "//name" : "stationrailhatch", > "//shortdescription" : "Station Rail Hatch", > "imagePositionX" : "-24", > "imagePositionY" : "-8", > "object" : "stationrailhatch", > "tilesetDirection" : "right" > }, > "114" : { > "//description" : "A large, sleek automated door, made from the same materials found on the exterior of space stations.", > "//name" : "stationdoorlarge", > "//shortdescription" : "Station Large Door", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "stationdoorlarge", > "tilesetDirection" : "right" > }, > "115" : { > "//description" : "This door forms an airtight seal when closed.", > "//name" : "astrodoor", > "//shortdescription" : "Astro Door", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "astrodoor", > "tilesetDirection" : "right" > }, > "116" : { > "//description" : "A port which modular station expansion pieces can be attached to.", > "//name" : "expansionslot", > "//shortdescription" : "Expansion Slot", > "imagePositionX" : "-16", > "imagePositionY" : "-8", > "object" : "expansionslot" > }, > "117" : { > "//description" : "A port which modular station expansion pieces can be attached to.", > "//name" : "expansionslothorizontal", > "//shortdescription" : "Horizontal Expansion Slot", > "imagePositionX" : "-8", > "imagePositionY" : "-16", > "object" : "expansionslothorizontal", > "tilesetDirection" : "right" > }, > "118" : { > "//description" : "A purple door with an eye, fit for an evil cult.", > "//name" : "cultistdoor", > "//shortdescription" : "Cultist Door", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "cultistdoor", > "tilesetDirection" : "right" > }, 259c370 < "//shortdescription" : "Airlock Hatch", --- > "//shortdescription" : "Pressurised Airlock Hatch", 506c617 < "//shortdescription" : "Airlock Door", --- > "//shortdescription" : "Pressurised Airlock Door", 539c650 < "//description" : "This door is made of some sort of bulletproof material.", --- > "//description" : "This automated door is made of some sort of bulletproof material.", 541c652 < "//shortdescription" : "Large Airlock", --- > "//shortdescription" : "Large Airlock Door", 566c677 < "//description" : "This door is made of some sort of bulletproof material.", --- > "//description" : "This automated door is made of some sort of bulletproof material.", 568c679 < "//shortdescription" : "Small Airlock", --- > "//shortdescription" : "Small Airlock Door", 972a1084,1095 > "106" : { > "image" : "../../../../../tiled/packed/objects/outpostrailhatch.png" > }, > "107" : { > "image" : "../../../../../tiled/packed/objects/outpostrailairlock.png" > }, > "108" : { > "image" : "../../../../../tiled/packed/objects/outposthatchlarge.png" > }, > "109" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, 974a1098,1124 > }, > "110" : { > "image" : "../../../../../tiled/packed/objects/industrialdoor.png" > }, > "111" : { > "image" : "../../../../../tiled/packed/objects/stationhatch.png" > }, > "112" : { > "image" : "../../../../../tiled/packed/objects/stationdoor.png" > }, > "113" : { > "image" : "../../../../../tiled/packed/objects/stationrailhatch.png" > }, > "114" : { > "image" : "../../../../../tiled/packed/objects/stationdoorlarge.png" > }, > "115" : { > "image" : "../../../../../tiled/packed/objects/astrodoor.png" > }, > "116" : { > "image" : "../../../../../tiled/packed/objects/expansionslot.png" > }, > "117" : { > "image" : "../../../../../tiled/packed/objects/expansionslothorizontal.png" > }, > "118" : { > "image" : "../../../../../tiled/packed/objects/cultistdoor.png" tilesets\packed\objects-by-colonytag\electronic.json 7c7 < "tilecount" : 107, --- > "tilecount" : 127, 28c28 < "//description" : "It's a patient file. He appears to be human, but... with two hearts?", --- > "//description" : "It's a screen displaying an old medical scan.", 92a93,109 > "107" : { > "//name" : "industrialclasscomputer", > "invalid" : "true" > }, > "108" : { > "//name" : "industrialclassdisplay", > "invalid" : "true" > }, > "109" : { > "//description" : "A display which appears to be connected to some sort of radar.", > "//name" : "industrialdisplay", > "//shortdescription" : "Industrial Display", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "industrialdisplay", > "tilesetDirection" : "right" > }, 101a119,208 > "110" : { > "//description" : "An old metal computer tower. Untidy cables hang out of its back.", > "//name" : "industrialcomputer", > "//shortdescription" : "Industrial Computer", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "industrialcomputer", > "tilesetDirection" : "right" > }, > "111" : { > "//description" : "A flickering holographic display of an unidentified planet.", > "//name" : "stationhologram", > "//shortdescription" : "Station Hologram", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "stationhologram", > "tilesetDirection" : "right" > }, > "112" : { > "//description" : "A wall-mounted screen lit up with lots of blue text.", > "//name" : "stationdisplay", > "//shortdescription" : "Station Display", > "imagePositionX" : "-16", > "imagePositionY" : "-8", > "object" : "stationdisplay", > "tilesetDirection" : "right" > }, > "113" : { > "//description" : "Brackets are built into the base to attach this monitor to the ceiling.", > "//name" : "astroceilingmonitor", > "//shortdescription" : "Astro Ceiling Monitor", > "imagePositionX" : "-16", > "imagePositionY" : "-24", > "object" : "astroceilingmonitor", > "tilesetDirection" : "right" > }, > "114" : { > "//description" : "Brackets are built into the base to attach this monitor to the ceiling.", > "//name" : "astroceilingmonitor_orientation1", > "//shortdescription" : "Astro Ceiling Monitor", > "imagePositionX" : "-24", > "imagePositionY" : "-24", > "object" : "astroceilingmonitor", > "tilesetDirection" : "right" > }, > "115" : { > "//description" : "A compact electronic display monitor.", > "//name" : "astromonitor", > "//shortdescription" : "Astro Monitor", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "astromonitor", > "tilesetDirection" : "right" > }, > "116" : { > "//description" : "A sign with an image indicating a medical station.", > "//name" : "stationtradesignmedic", > "//shortdescription" : "Medic Station Sign", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "stationtradesignmedic", > "tilesetDirection" : "right" > }, > "117" : { > "//description" : "A sign with an image of an electronic component, indicating an electronics station.", > "//name" : "stationtradesignelectronics", > "//shortdescription" : "Electronics Station Sign", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "stationtradesignelectronics", > "tilesetDirection" : "right" > }, > "118" : { > "//description" : "A sign with an image of a gun, indicating a weapons station.", > "//name" : "stationtradesignweapons", > "//shortdescription" : "Weapons Station Sign", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "stationtradesignweapons", > "tilesetDirection" : "right" > }, > "119" : { > "//description" : "A sign with an image of food utensils, indicating a food station.", > "//name" : "stationtradesignfood", > "//shortdescription" : "Food Station Sign", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "stationtradesignfood", > "tilesetDirection" : "right" > }, 110a218,280 > "120" : { > "//description" : "A sleek control console.", > "//name" : "lunarbaseconsole", > "//shortdescription" : "Lunar Base Console", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "lunarbaseconsole", > "tilesetDirection" : "right" > }, > "121" : { > "//description" : "A small terminal, with a compact display screen.", > "//name" : "stationconsole", > "//shortdescription" : "Station Console", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "stationconsole", > "tilesetDirection" : "right" > }, > "122" : { > "//description" : "A large display built to monitor a variety of devices.", > "//name" : "astroconsole", > "//shortdescription" : "Astro Console", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "astroconsole", > "tilesetDirection" : "right" > }, > "123" : { > "//description" : "This cool computer is making a lot of 'beep boop boop beep' noises.", > "//name" : "apexcoolcomputer_orientation1", > "//shortdescription" : "Cool Computer", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "apexcoolcomputer", > "tilesetDirection" : "right" > }, > "124" : { > "//description" : "Used to produce modular mech components.", > "//name" : "mechcraftingtable", > "//shortdescription" : "^orange;Mech Part Crafting Table^white;", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "mechcraftingtable", > "tilesetDirection" : "right" > }, > "125" : { > "//description" : "A screen displaying a series of space-themed photographs.", > "//name" : "spaceslideshow", > "//shortdescription" : "Space Slideshow", > "imagePositionX" : "-32", > "imagePositionY" : "-16", > "object" : "spaceslideshow", > "tilesetDirection" : "right" > }, > "126" : { > "//description" : "An arcade machine with an interactive narrative game.", > "//name" : "beautifulattempt", > "//shortdescription" : "Beautiful Attempt! Machine", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "beautifulattempt", > "tilesetDirection" : "right" > }, 865c1035 < "//description" : "This appears to be an analysis of the environment outside of the bunker.", --- > "//description" : "This panel appears to monitor some obscure environmental data.", 962a1133,1141 > "107" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "108" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "109" : { > "image" : "../../../../../tiled/packed/objects/industrialdisplay.png" > }, 965a1145,1174 > "110" : { > "image" : "../../../../../tiled/packed/objects/industrialcomputer.png" > }, > "111" : { > "image" : "../../../../../tiled/packed/objects/stationhologram.png" > }, > "112" : { > "image" : "../../../../../tiled/packed/objects/stationdisplay.png" > }, > "113" : { > "image" : "../../../../../tiled/packed/objects/astroceilingmonitor.png" > }, > "114" : { > "image" : "../../../../../tiled/packed/objects/astroceilingmonitor_orientation1.png" > }, > "115" : { > "image" : "../../../../../tiled/packed/objects/astromonitor.png" > }, > "116" : { > "image" : "../../../../../tiled/packed/objects/stationtradesignmedic.png" > }, > "117" : { > "image" : "../../../../../tiled/packed/objects/stationtradesignelectronics.png" > }, > "118" : { > "image" : "../../../../../tiled/packed/objects/stationtradesignweapons.png" > }, > "119" : { > "image" : "../../../../../tiled/packed/objects/stationtradesignfood.png" > }, 967a1177,1197 > }, > "120" : { > "image" : "../../../../../tiled/packed/objects/lunarbaseconsole.png" > }, > "121" : { > "image" : "../../../../../tiled/packed/objects/stationconsole.png" > }, > "122" : { > "image" : "../../../../../tiled/packed/objects/astroconsole.png" > }, > "123" : { > "image" : "../../../../../tiled/packed/objects/apexcoolcomputer_orientation1.png" > }, > "124" : { > "image" : "../../../../../tiled/packed/objects/mechcraftingtable.png" > }, > "125" : { > "image" : "../../../../../tiled/packed/objects/spaceslideshow.png" > }, > "126" : { > "image" : "../../../../../tiled/packed/objects/beautifulattempt.png" tilesets\packed\objects-by-colonytag\evil.json 7c7 < "tilecount" : 167, --- > "tilecount" : 168, 680a681,689 > "167" : { > "//description" : "A purple door with an eye, fit for an evil cult.", > "//name" : "cultistdoor", > "//shortdescription" : "Cultist Door", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "cultistdoor", > "tilesetDirection" : "right" > }, 1722a1732,1734 > }, > "167" : { > "image" : "../../../../../tiled/packed/objects/cultistdoor.png" tilesets\packed\objects-by-colonytag\human.json 7c7 < "tilecount" : 246, --- > "tilecount" : 247, 533c533 < "//description" : "What does USCM stand for, again? Oh - United Systems Colonial Marines.", --- > "//description" : "What does USCM stand for, again?", 796c796 < "//description" : "The flag of the Protectorate. Use ^green;[E]^white; to bookmark a teleportation location.", --- > "//description" : "The human flag. Use ^green;[E]^white; to bookmark a teleportation location.", 814c814 < "//description" : "The flag of the Protectorate. Use ^green;[E]^white; to bookmark a teleportation location.", --- > "//description" : "The human flag. Use ^green;[E]^white; to bookmark a teleportation location.", 1019c1019 < "//description" : "This appears to be an analysis of the environment outside of the bunker.", --- > "//description" : "This panel appears to monitor some obscure environmental data.", 1454a1455,1462 > "246" : { > "//description" : "A console for monitoring the conditions inside an orbiting station.", > "//name" : "playerstationconsole", > "//shortdescription" : "Station Console", > "imagePositionX" : "-16", > "imagePositionY" : "-8", > "object" : "playerstationconsole" > }, 1572c1580 < "//description" : "It's a patient file. He appears to be human, but... with two hearts?", --- > "//description" : "It's a screen displaying an old medical scan.", 2660a2669,2671 > }, > "246" : { > "image" : "../../../../../tiled/packed/objects/playerstationconsole.png" tilesets\packed\objects-by-colonytag\humanbunker.json 118c118 < "//description" : "It's a patient file. He appears to be human, but... with two hearts?", --- > "//description" : "It's a screen displaying an old medical scan.", 357c357 < "//description" : "What does USCM stand for, again? Oh - United Systems Colonial Marines.", --- > "//description" : "What does USCM stand for, again?", 490c490 < "//description" : "This appears to be an analysis of the environment outside of the bunker.", --- > "//description" : "This panel appears to monitor some obscure environmental data.", tilesets\packed\objects-by-colonytag\hylotl.json 7c7 < "tilecount" : 219, --- > "tilecount" : 221, 252c252,253 < "object" : "numisign" --- > "object" : "numisign", > "tilesetDirection" : "right" 275c276 < "//shortdescription" : "Airlock Door", --- > "//shortdescription" : "Pressurised Airlock Door", 1181a1183,1190 > "219" : { > "//description" : "A halogen sign for the Letheia corporation.", > "//name" : "letheiasign", > "//shortdescription" : "Letheia Corp Sign", > "imagePositionX" : "-32", > "imagePositionY" : "-8", > "object" : "letheiasign" > }, 1190a1200,1208 > "220" : { > "//description" : "An arcade machine with an interactive narrative game.", > "//name" : "beautifulattempt", > "//shortdescription" : "Beautiful Attempt! Machine", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "beautifulattempt", > "tilesetDirection" : "right" > }, 1710c1728 < "//shortdescription" : "Airlock Hatch", --- > "//shortdescription" : "Pressurised Airlock Hatch", 2317a2336,2338 > "219" : { > "image" : "../../../../../tiled/packed/objects/letheiasign.png" > }, 2319a2341,2343 > }, > "220" : { > "image" : "../../../../../tiled/packed/objects/beautifulattempt.png" tilesets\packed\objects-by-colonytag\hylotloceancity.json 7c7 < "tilecount" : 132, --- > "tilecount" : 133, 337a338,346 > "132" : { > "//description" : "An arcade machine with an interactive narrative game.", > "//name" : "beautifulattempt", > "//shortdescription" : "Beautiful Attempt! Machine", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "beautifulattempt", > "tilesetDirection" : "right" > }, 718c727 < "//shortdescription" : "Airlock Hatch", --- > "//shortdescription" : "Pressurised Airlock Hatch", 967c976,977 < "object" : "numisign" --- > "object" : "numisign", > "tilesetDirection" : "right" 990c1000 < "//shortdescription" : "Airlock Door", --- > "//shortdescription" : "Pressurised Airlock Door", 1278a1289,1291 > }, > "132" : { > "image" : "../../../../../tiled/packed/objects/beautifulattempt.png" tilesets\packed\objects-by-colonytag\light.json 7c7 < "tilecount" : 355, --- > "tilecount" : 360, 1961c1961 < "//description" : "A string of small, twinkling fairy lights.", --- > "//description" : "This string of small, twinkling holiday lights is the perfect way to get festive.", 1963c1963 < "//shortdescription" : "Fairy Lights", --- > "//shortdescription" : "Holiday Lights", 2058c2058 < "//description" : "A string of small, twinkling fairy lights.", --- > "//description" : "This string of small, twinkling holiday lights is the perfect way to get festive.", 2060c2060 < "//shortdescription" : "Fairy Lights", --- > "//shortdescription" : "Holiday Lights", 2151c2151 < "//description" : "A string of small, twinkling fairy lights.", --- > "//description" : "This string of small, twinkling holiday lights is the perfect way to get festive.", 2153c2153 < "//shortdescription" : "Fairy Lights", --- > "//shortdescription" : "Holiday Lights", 2500a2501,2540 > "355" : { > "//name" : "industrialclasslight", > "invalid" : "true" > }, > "356" : { > "//description" : "A metal wall light which emits a sickly orange glow.", > "//name" : "industriallight", > "//shortdescription" : "Industrial Light", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "industriallight", > "tilesetDirection" : "right" > }, > "357" : { > "//description" : "A long industrial looking fluorescent light.", > "//name" : "stationlighth", > "//shortdescription" : "Wide Station Light", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "stationlighth", > "tilesetDirection" : "right" > }, > "358" : { > "//description" : "A long industrial looking fluorescent light.", > "//name" : "stationlightv", > "//shortdescription" : "Tall Station Light", > "imagePositionX" : "0", > "imagePositionY" : "-16", > "object" : "stationlightv", > "tilesetDirection" : "right" > }, > "359" : { > "//description" : "A ceiling mounted utility lantern.", > "//name" : "astrolight", > "//shortdescription" : "Astro Light", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "astrolight", > "tilesetDirection" : "right" > }, 2704,2705c2744,2745 < "imagePositionX" : "-8", < "imagePositionY" : "0", --- > "imagePositionX" : "0", > "imagePositionY" : "-8", 2722,2723c2762,2763 < "imagePositionX" : "0", < "imagePositionY" : "-8", --- > "imagePositionX" : "-8", > "imagePositionY" : "0", 3969a4010,4024 > }, > "355" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "356" : { > "image" : "../../../../../tiled/packed/objects/industriallight.png" > }, > "357" : { > "image" : "../../../../../tiled/packed/objects/stationlighth.png" > }, > "358" : { > "image" : "../../../../../tiled/packed/objects/stationlightv.png" > }, > "359" : { > "image" : "../../../../../tiled/packed/objects/astrolight.png" tilesets\packed\objects-by-colonytag\mechanical.json 7c7 < "tilecount" : 66, --- > "tilecount" : 70, 566a567,602 > "66" : { > "//description" : "A vending machine, there are some quality snacks in here.", > "//name" : "stationvendingmachine", > "//shortdescription" : "Station Vending Machine", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "stationvendingmachine", > "tilesetDirection" : "right" > }, > "67" : { > "//description" : "A vent typically used for keeping the air clean aboard space stations.", > "//name" : "stationceilingvent", > "//shortdescription" : "Station Ceiling Vent", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "stationceilingvent", > "tilesetDirection" : "right" > }, > "68" : { > "//description" : "Ooh, what should I get?", > "//name" : "vendingmachine", > "//shortdescription" : "Vending Machine", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "vendingmachine", > "tilesetDirection" : "right" > }, > "69" : { > "//description" : "A large rotating generator, or radar, or perhaps an engine...", > "//name" : "stationpylon", > "//shortdescription" : "Station Pylon", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "stationpylon", > "tilesetDirection" : "right" > }, 783a820,831 > }, > "66" : { > "image" : "../../../../../tiled/packed/objects/stationvendingmachine.png" > }, > "67" : { > "image" : "../../../../../tiled/packed/objects/stationceilingvent.png" > }, > "68" : { > "image" : "../../../../../tiled/packed/objects/vendingmachine.png" > }, > "69" : { > "image" : "../../../../../tiled/packed/objects/stationpylon.png" tilesets\packed\objects-by-colonytag\mining.json 7c7 < "tilecount" : 6, --- > "tilecount" : 10, 61a62,96 > }, > "6" : { > "//description" : "Perfect for storing tools and equipment in!", > "//name" : "miningchest", > "//shortdescription" : "Mining Chest", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "miningchest", > "tilesetDirection" : "right" > }, > "7" : { > "//description" : "A machine used for breaking down rocks.", > "//name" : "miningcrusher", > "//shortdescription" : "Mining Impact Crusher", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "miningcrusher", > "tilesetDirection" : "right" > }, > "8" : { > "//description" : "A metal fence with red and black warning stripes.", > "//name" : "miningfence", > "//shortdescription" : "Mining Railing", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "miningfence", > "tilesetDirection" : "right" > }, > "9" : { > "//description" : "A metal sign that says \"HAZARD!\"", > "//name" : "mininghazardsign", > "//shortdescription" : "Mining Hazard Sign", > "imagePositionX" : "-16", > "imagePositionY" : "-8", > "object" : "mininghazardsign" 81a117,128 > }, > "6" : { > "image" : "../../../../../tiled/packed/objects/miningchest.png" > }, > "7" : { > "image" : "../../../../../tiled/packed/objects/miningcrusher.png" > }, > "8" : { > "image" : "../../../../../tiled/packed/objects/miningfence.png" > }, > "9" : { > "image" : "../../../../../tiled/packed/objects/mininghazardsign.png" tilesets\packed\objects-by-colonytag\misc.json 7c7 < "tilecount" : 114, --- > "tilecount" : 158, 157a158,211 > "114" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble3", > "//shortdescription" : "Ship Greeble 3", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble3", > "tilesetDirection" : "right" > }, > "115" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble4", > "//shortdescription" : "Ship Greeble 4", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble4", > "tilesetDirection" : "right" > }, > "116" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble2", > "//shortdescription" : "Ship Greeble 2", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble2", > "tilesetDirection" : "right" > }, > "117" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble1", > "//shortdescription" : "Ship Greeble 1", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble1", > "tilesetDirection" : "right" > }, > "118" : { > "//description" : "This fluorescent light has seen better days.", > "//name" : "flickeringfluorescentlight_orientation3", > "//shortdescription" : "Damaged Fluorescent Light", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "flickeringfluorescentlight", > "tilesetDirection" : "right" > }, > "119" : { > "//description" : "This fluorescent light has seen better days.", > "//name" : "flickeringfluorescentlight_orientation4", > "//shortdescription" : "Damaged Fluorescent Light", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "flickeringfluorescentlight", > "tilesetDirection" : "right" > }, 165a220,304 > "120" : { > "//name" : "industrialclasschair", > "invalid" : "true" > }, > "121" : { > "//description" : "A solid metal chair with only the slightest bit of padding.", > "//name" : "industrialchair", > "//shortdescription" : "Industrial Chair", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "industrialchair", > "tilesetDirection" : "right" > }, > "122" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble3_orientation2", > "//shortdescription" : "Ship Greeble 3", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble3", > "tilesetDirection" : "right" > }, > "123" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble3_orientation3", > "//shortdescription" : "Ship Greeble 3", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble3", > "tilesetDirection" : "right" > }, > "124" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble3_orientation4", > "//shortdescription" : "Ship Greeble 3", > "imagePositionX" : "0", > "imagePositionY" : "-16", > "object" : "shipgreeble3", > "tilesetDirection" : "left" > }, > "125" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble3_orientation5", > "//shortdescription" : "Ship Greeble 3", > "imagePositionX" : "0", > "imagePositionY" : "-16", > "object" : "shipgreeble3", > "tilesetDirection" : "right" > }, > "126" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble3_orientation6", > "//shortdescription" : "Ship Greeble 3", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble3", > "tilesetDirection" : "right" > }, > "127" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble3_orientation7", > "//shortdescription" : "Ship Greeble 3", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble3", > "tilesetDirection" : "right" > }, > "128" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble4_orientation2", > "//shortdescription" : "Ship Greeble 4", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble4", > "tilesetDirection" : "right" > }, > "129" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble4_orientation3", > "//shortdescription" : "Ship Greeble 4", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble4", > "tilesetDirection" : "right" > }, 174a314,403 > "130" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble4_orientation4", > "//shortdescription" : "Ship Greeble 4", > "imagePositionX" : "0", > "imagePositionY" : "-16", > "object" : "shipgreeble4", > "tilesetDirection" : "left" > }, > "131" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble4_orientation5", > "//shortdescription" : "Ship Greeble 4", > "imagePositionX" : "0", > "imagePositionY" : "-16", > "object" : "shipgreeble4", > "tilesetDirection" : "right" > }, > "132" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble4_orientation6", > "//shortdescription" : "Ship Greeble 4", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble4", > "tilesetDirection" : "right" > }, > "133" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble4_orientation7", > "//shortdescription" : "Ship Greeble 4", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble4", > "tilesetDirection" : "right" > }, > "134" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble2_orientation2", > "//shortdescription" : "Ship Greeble 2", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble2", > "tilesetDirection" : "right" > }, > "135" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble2_orientation3", > "//shortdescription" : "Ship Greeble 2", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble2", > "tilesetDirection" : "right" > }, > "136" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble2_orientation4", > "//shortdescription" : "Ship Greeble 2", > "imagePositionX" : "0", > "imagePositionY" : "-16", > "object" : "shipgreeble2", > "tilesetDirection" : "left" > }, > "137" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble2_orientation5", > "//shortdescription" : "Ship Greeble 2", > "imagePositionX" : "0", > "imagePositionY" : "-16", > "object" : "shipgreeble2", > "tilesetDirection" : "right" > }, > "138" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble2_orientation6", > "//shortdescription" : "Ship Greeble 2", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble2", > "tilesetDirection" : "right" > }, > "139" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble2_orientation7", > "//shortdescription" : "Ship Greeble 2", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble2", > "tilesetDirection" : "right" > }, 183a413,502 > "140" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble1_orientation2", > "//shortdescription" : "Ship Greeble 1", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble1", > "tilesetDirection" : "right" > }, > "141" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble1_orientation3", > "//shortdescription" : "Ship Greeble 1", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble1", > "tilesetDirection" : "right" > }, > "142" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble1_orientation4", > "//shortdescription" : "Ship Greeble 1", > "imagePositionX" : "0", > "imagePositionY" : "-8", > "object" : "shipgreeble1", > "tilesetDirection" : "left" > }, > "143" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble1_orientation5", > "//shortdescription" : "Ship Greeble 1", > "imagePositionX" : "0", > "imagePositionY" : "-8", > "object" : "shipgreeble1", > "tilesetDirection" : "right" > }, > "144" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble1_orientation6", > "//shortdescription" : "Ship Greeble 1", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble1", > "tilesetDirection" : "right" > }, > "145" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble1_orientation7", > "//shortdescription" : "Ship Greeble 1", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble1", > "tilesetDirection" : "right" > }, > "146" : { > "//description" : "A cheap bed with a sturdy metal frame. It doesn't seem very comfortable.", > "//name" : "industrialbed", > "//shortdescription" : "Industrial Bed", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "industrialbed", > "tilesetDirection" : "right" > }, > "147" : { > "//description" : "A curved, formal looking metal chair.", > "//name" : "stationchair", > "//shortdescription" : "Station Chair", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "stationchair", > "tilesetDirection" : "right" > }, > "148" : { > "//description" : "A modern chair design, commonly found inside spaceships.", > "//name" : "astrochair", > "//shortdescription" : "Astro Chair", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "astrochair", > "tilesetDirection" : "right" > }, > "149" : { > "//description" : "A panel designed for inside space environments.", > "//name" : "astrowallpanel", > "//shortdescription" : "Astro Wall Panel", > "imagePositionX" : "-16", > "imagePositionY" : "-8", > "object" : "astrowallpanel", > "tilesetDirection" : "right" > }, 187a507,573 > "150" : { > "//description" : "An artificial atmospheric system exhaust port.", > "//name" : "astrovent", > "//shortdescription" : "Astro Vent", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "astrovent", > "tilesetDirection" : "right" > }, > "151" : { > "//description" : "A sleek metal bench.", > "//name" : "stationbench", > "//shortdescription" : "Station Bench", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "stationbench", > "tilesetDirection" : "right" > }, > "152" : { > "//description" : "A panel which is designed to attach to a space structure or ship.", > "//name" : "stationwallpanel", > "//shortdescription" : "Station Wall Panel", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "stationwallpanel", > "tilesetDirection" : "right" > }, > "153" : { > "//description" : "A large breakable capsule. Wonder what's inside.", > "//name" : "capsulespace", > "//shortdescription" : "Surface-Mounted Capsule", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "capsulespace" > }, > "154" : { > "//description" : "A large breakable capsule. Wonder what's inside.", > "//name" : "capsulespace_orientation1", > "//shortdescription" : "Surface-Mounted Capsule", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "capsulespace" > }, > "155" : { > "//description" : "A large breakable capsule. Wonder what's inside.", > "//name" : "capsulespace_orientation2", > "//shortdescription" : "Surface-Mounted Capsule", > "imagePositionX" : "0", > "imagePositionY" : "-8", > "object" : "capsulespace" > }, > "156" : { > "//description" : "A large breakable capsule. Wonder what's inside.", > "//name" : "capsulespace_orientation3", > "//shortdescription" : "Surface-Mounted Capsule", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "capsulespace" > }, > "157" : { > "//description" : "A personal teleporter, connects to bookmarked locations.", > "//name" : "remoteteleporter", > "//shortdescription" : "Outpost Teleporter", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "remoteteleporter" > }, 215c601,602 < "object" : "flickeringfluorescentlight" --- > "object" : "flickeringfluorescentlight", > "tilesetDirection" : "right" 232c619,620 < "object" : "flickeringfluorescentlight" --- > "object" : "flickeringfluorescentlight", > "tilesetDirection" : "right" 240c628,629 < "object" : "flickeringfluorescentlight" --- > "object" : "flickeringfluorescentlight", > "tilesetDirection" : "right" 995a1385,1402 > "114" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble3.png" > }, > "115" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble4.png" > }, > "116" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble2.png" > }, > "117" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble1.png" > }, > "118" : { > "image" : "../../../../../tiled/packed/objects/flickeringfluorescentlight_orientation3.png" > }, > "119" : { > "image" : "../../../../../tiled/packed/objects/flickeringfluorescentlight_orientation4.png" > }, 998a1406,1435 > "120" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "121" : { > "image" : "../../../../../tiled/packed/objects/industrialchair.png" > }, > "122" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble3_orientation2.png" > }, > "123" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble3_orientation3.png" > }, > "124" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble3_orientation4.png" > }, > "125" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble3_orientation5.png" > }, > "126" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble3_orientation6.png" > }, > "127" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble3_orientation7.png" > }, > "128" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble4_orientation2.png" > }, > "129" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble4_orientation3.png" > }, 1001a1439,1468 > "130" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble4_orientation4.png" > }, > "131" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble4_orientation5.png" > }, > "132" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble4_orientation6.png" > }, > "133" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble4_orientation7.png" > }, > "134" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble2_orientation2.png" > }, > "135" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble2_orientation3.png" > }, > "136" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble2_orientation4.png" > }, > "137" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble2_orientation5.png" > }, > "138" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble2_orientation6.png" > }, > "139" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble2_orientation7.png" > }, 1004a1472,1501 > "140" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble1_orientation2.png" > }, > "141" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble1_orientation3.png" > }, > "142" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble1_orientation4.png" > }, > "143" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble1_orientation5.png" > }, > "144" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble1_orientation6.png" > }, > "145" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble1_orientation7.png" > }, > "146" : { > "image" : "../../../../../tiled/packed/objects/industrialbed.png" > }, > "147" : { > "image" : "../../../../../tiled/packed/objects/stationchair.png" > }, > "148" : { > "image" : "../../../../../tiled/packed/objects/astrochair.png" > }, > "149" : { > "image" : "../../../../../tiled/packed/objects/astrowallpanel.png" > }, 1006a1504,1527 > }, > "150" : { > "image" : "../../../../../tiled/packed/objects/astrovent.png" > }, > "151" : { > "image" : "../../../../../tiled/packed/objects/stationbench.png" > }, > "152" : { > "image" : "../../../../../tiled/packed/objects/stationwallpanel.png" > }, > "153" : { > "image" : "../../../../../tiled/packed/objects/capsulespace.png" > }, > "154" : { > "image" : "../../../../../tiled/packed/objects/capsulespace_orientation1.png" > }, > "155" : { > "image" : "../../../../../tiled/packed/objects/capsulespace_orientation2.png" > }, > "156" : { > "image" : "../../../../../tiled/packed/objects/capsulespace_orientation3.png" > }, > "157" : { > "image" : "../../../../../tiled/packed/objects/remoteteleporter.png" tilesets\packed\objects-by-colonytag\outpost.json 7c7 < "tilecount" : 97, --- > "tilecount" : 104, 35a36,69 > "100" : { > "//description" : "A hanging mech booster.", > "//name" : "hangingbooster", > "//shortdescription" : "Hanging Booster", > "imagePositionX" : "-16", > "imagePositionY" : "-32", > "object" : "hangingbooster" > }, > "101" : { > "//description" : "Equip and customise your personal mech!", > "//name" : "mechassemblystation", > "//shortdescription" : "Mech Assembly Station", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "mechassemblystation", > "tilesetDirection" : "right" > }, > "102" : { > "//description" : "This metal sign indicates a mech work station.", > "//name" : "mechsign", > "//shortdescription" : "Mech Sign", > "imagePositionX" : "-16", > "imagePositionY" : "-16", > "object" : "mechsign" > }, > "103" : { > "//description" : "This practice target outputs a wire signal until broken.", > "//name" : "wiredtarget", > "//shortdescription" : "Wired Target", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "wiredtarget", > "tilesetDirection" : "right" > }, 330c364 < "//description" : "This door is made of some sort of bulletproof material.", --- > "//description" : "This automated door is made of some sort of bulletproof material.", 332c366 < "//shortdescription" : "Large Airlock", --- > "//shortdescription" : "Large Airlock Door", 348c382 < "//description" : "This door is made of some sort of bulletproof material.", --- > "//description" : "This automated door is made of some sort of bulletproof material.", 350c384 < "//shortdescription" : "Small Airlock", --- > "//shortdescription" : "Small Airlock Door", 864a899,925 > }, > "97" : { > "//description" : "This door is made of some sort of bulletproof material. It has a composite rail running through it.", > "//name" : "outpostrailhatch", > "//shortdescription" : "Rail Airlock Hatch", > "imagePositionX" : "-24", > "imagePositionY" : "-8", > "object" : "outpostrailhatch", > "tilesetDirection" : "right" > }, > "98" : { > "//description" : "This door is made of some sort of bulletproof material. It has a composite rail running through it.", > "//name" : "outpostrailairlock", > "//shortdescription" : "Rail Airlock Door", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "outpostrailairlock", > "tilesetDirection" : "right" > }, > "99" : { > "//description" : "This automated door is made of some sort of bulletproof material.", > "//name" : "outposthatchlarge", > "//shortdescription" : "Large Airlock Hatch", > "imagePositionX" : "-24", > "imagePositionY" : "-8", > "object" : "outposthatchlarge", > "tilesetDirection" : "right" 876a938,949 > "100" : { > "image" : "../../../../../tiled/packed/objects/hangingbooster.png" > }, > "101" : { > "image" : "../../../../../tiled/packed/objects/mechassemblystation.png" > }, > "102" : { > "image" : "../../../../../tiled/packed/objects/mechsign.png" > }, > "103" : { > "image" : "../../../../../tiled/packed/objects/wiredtarget.png" > }, 1157a1231,1239 > }, > "97" : { > "image" : "../../../../../tiled/packed/objects/outpostrailhatch.png" > }, > "98" : { > "image" : "../../../../../tiled/packed/objects/outpostrailairlock.png" > }, > "99" : { > "image" : "../../../../../tiled/packed/objects/outposthatchlarge.png" tilesets\packed\objects-by-colonytag\pretty.json 7c7 < "tilecount" : 472, --- > "tilecount" : 473, 886c886,887 < "object" : "numisign" --- > "object" : "numisign", > "tilesetDirection" : "right" 3627a3629,3637 > "472" : { > "//description" : "The label reads, \"A braindead bioweapon created by irresponsible human scientists.\"", > "//name" : "paraspriteaf", > "//shortdescription" : "Parasprite Figurine", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "paraspriteaf", > "tilesetDirection" : "right" > }, 5373a5384,5386 > }, > "472" : { > "image" : "../../../../../tiled/packed/objects/paraspriteaf.png" tilesets\packed\objects-by-colonytag\science.json 7c7 < "tilecount" : 16, --- > "tilecount" : 18, 80a81,98 > "16" : { > "//description" : "A scientific telescope, perfect for observing the stars.", > "//name" : "telescope", > "//shortdescription" : "Astronomy Telescope", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "telescope", > "tilesetDirection" : "right" > }, > "17" : { > "//description" : "A scientific telescope, perfect for observing the stars.", > "//name" : "telescope_orientation1", > "//shortdescription" : "Astronomy Telescope", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "telescope", > "tilesetDirection" : "right" > }, 176a195,200 > }, > "16" : { > "image" : "../../../../../tiled/packed/objects/telescope.png" > }, > "17" : { > "image" : "../../../../../tiled/packed/objects/telescope_orientation1.png" tilesets\packed\objects-by-colonytag\storage.json 7c7 < "tilecount" : 256, --- > "tilecount" : 266, 1564a1565,1585 > "256" : { > "//name" : "industrialclasscrate", > "invalid" : "true" > }, > "257" : { > "//name" : "industrialclasscanister", > "invalid" : "true" > }, > "258" : { > "//name" : "industrialclassstoragelocker", > "invalid" : "true" > }, > "259" : { > "//description" : "A sealed metal canister, that might be used to store hazardous liquids.", > "//name" : "industrialcanister", > "//shortdescription" : "Industrial Canister", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "industrialcanister", > "tilesetDirection" : "right" > }, 1573a1595,1646 > "260" : { > "//description" : "A pressurised cargo crate, designed to withstand the harsh conditions of space travel.", > "//name" : "industrialcrate", > "//shortdescription" : "Industrial Crate", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "industrialcrate", > "tilesetDirection" : "right" > }, > "261" : { > "//description" : "A wall mounted locker, complete with hazard stripes and a red light.", > "//name" : "industrialstoragelocker", > "//shortdescription" : "Industrial Storage Locker", > "imagePositionX" : "-16", > "imagePositionY" : "-8", > "object" : "industrialstoragelocker" > }, > "262" : { > "//description" : "A shipping crate, designed to ship space goods.", > "//name" : "stationcrate", > "//shortdescription" : "Station Crate", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "stationcrate", > "tilesetDirection" : "right" > }, > "263" : { > "//description" : "A modern metal cabinet with floor mounting brackets.", > "//name" : "astrocabinet", > "//shortdescription" : "Astro Cabinet", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "astrocabinet", > "tilesetDirection" : "right" > }, > "264" : { > "//description" : "An astro panel storage locker.", > "//name" : "astrostoragelocker", > "//shortdescription" : "Astro Storage Locker", > "imagePositionX" : "-16", > "imagePositionY" : "-8", > "object" : "astrostoragelocker" > }, > "265" : { > "//description" : "A large container specialized for space transport.", > "//name" : "astrocrate", > "//shortdescription" : "Astro Crate", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "astrocrate", > "tilesetDirection" : "right" > }, 2789a2863,2874 > "256" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "257" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "258" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "259" : { > "image" : "../../../../../tiled/packed/objects/industrialcanister.png" > }, 2791a2877,2894 > }, > "260" : { > "image" : "../../../../../tiled/packed/objects/industrialcrate.png" > }, > "261" : { > "image" : "../../../../../tiled/packed/objects/industrialstoragelocker.png" > }, > "262" : { > "image" : "../../../../../tiled/packed/objects/stationcrate.png" > }, > "263" : { > "image" : "../../../../../tiled/packed/objects/astrocabinet.png" > }, > "264" : { > "image" : "../../../../../tiled/packed/objects/astrostoragelocker.png" > }, > "265" : { > "image" : "../../../../../tiled/packed/objects/astrocrate.png" tilesets\packed\objects-by-colonytag\wired.json 7c7 < "tilecount" : 169, --- > "tilecount" : 176, 690a691,694 > "169" : { > "//name" : "industrialclasscomputer", > "invalid" : "true" > }, 699a704,752 > "170" : { > "//name" : "industrialclassdisplay", > "invalid" : "true" > }, > "171" : { > "//description" : "A display which appears to be connected to some sort of radar.", > "//name" : "industrialdisplay", > "//shortdescription" : "Industrial Display", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "industrialdisplay", > "tilesetDirection" : "right" > }, > "172" : { > "//description" : "An old metal computer tower. Untidy cables hang out of its back.", > "//name" : "industrialcomputer", > "//shortdescription" : "Industrial Computer", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "industrialcomputer", > "tilesetDirection" : "right" > }, > "173" : { > "//description" : "A small terminal, with a compact display screen.", > "//name" : "stationconsole", > "//shortdescription" : "Station Console", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "stationconsole", > "tilesetDirection" : "right" > }, > "174" : { > "//description" : "A large display built to monitor a variety of devices.", > "//name" : "astroconsole", > "//shortdescription" : "Astro Console", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "astroconsole", > "tilesetDirection" : "right" > }, > "175" : { > "//description" : "...", > "//name" : "invisiblewallswitch", > "//shortdescription" : "Invisible Wall Switch", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "invisiblewallswitch", > "tilesetDirection" : "right" > }, 996a1050 > "//description" : "...", 998c1052,1056 < "invalid" : "true" --- > "//shortdescription" : "Invisible Sound Source", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "invisiblesound", > "tilesetDirection" : "right" 1715a1774,1776 > "169" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, 1718a1780,1797 > "170" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "171" : { > "image" : "../../../../../tiled/packed/objects/industrialdisplay.png" > }, > "172" : { > "image" : "../../../../../tiled/packed/objects/industrialcomputer.png" > }, > "173" : { > "image" : "../../../../../tiled/packed/objects/stationconsole.png" > }, > "174" : { > "image" : "../../../../../tiled/packed/objects/astroconsole.png" > }, > "175" : { > "image" : "../../../../../tiled/packed/objects/invisiblewallswitch.png" > }, 1822c1901 < "image" : "../../../../../tiled/packed/../packed/invalid.png" --- > "image" : "../../../../../tiled/packed/objects/invisiblesound.png" tilesets\packed\objects-by-race\apex.json 7c7 < "tilecount" : 368, --- > "tilecount" : 371, 2459a2460,2477 > "368" : { > "//description" : "A fine china bowl.", > "//name" : "classicbowl", > "//shortdescription" : "Classic Bowl", > "imagePositionX" : "0", > "imagePositionY" : "0", > "object" : "classicbowl", > "tilesetDirection" : "right" > }, > "369" : { > "//description" : "A fine china mug.", > "//name" : "classicmug", > "//shortdescription" : "Classic Mug", > "imagePositionX" : "0", > "imagePositionY" : "0", > "object" : "classicmug", > "tilesetDirection" : "right" > }, 2467a2486,2494 > "370" : { > "//description" : "This cool computer is making a lot of 'beep boop boop beep' noises.", > "//name" : "apexcoolcomputer_orientation1", > "//shortdescription" : "Cool Computer", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "apexcoolcomputer", > "tilesetDirection" : "right" > }, 3952a3980,3985 > "368" : { > "image" : "../../../../../tiled/packed/objects/classicbowl.png" > }, > "369" : { > "image" : "../../../../../tiled/packed/objects/classicmug.png" > }, 3954a3988,3990 > }, > "370" : { > "image" : "../../../../../tiled/packed/objects/apexcoolcomputer_orientation1.png" tilesets\packed\objects-by-race\generic.json 7c7 < "tilecount" : 1792, --- > "tilecount" : 1925, 747c747 < "//description" : "A string of small, twinkling fairy lights.", --- > "//description" : "This string of small, twinkling holiday lights is the perfect way to get festive.", 749c749 < "//shortdescription" : "Fairy Lights", --- > "//shortdescription" : "Holiday Lights", 756c756 < "//description" : "A string of small, twinkling fairy lights.", --- > "//description" : "This string of small, twinkling holiday lights is the perfect way to get festive.", 758c758 < "//shortdescription" : "Fairy Lights", --- > "//shortdescription" : "Holiday Lights", 7453a7454,7525 > "1792" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble3", > "//shortdescription" : "Ship Greeble 3", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble3", > "tilesetDirection" : "right" > }, > "1793" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble4", > "//shortdescription" : "Ship Greeble 4", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble4", > "tilesetDirection" : "right" > }, > "1794" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble2", > "//shortdescription" : "Ship Greeble 2", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble2", > "tilesetDirection" : "right" > }, > "1795" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble1", > "//shortdescription" : "Ship Greeble 1", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble1", > "tilesetDirection" : "right" > }, > "1796" : { > "//description" : "This door is made of some sort of bulletproof material. It has a composite rail running through it.", > "//name" : "outpostrailhatch", > "//shortdescription" : "Rail Airlock Hatch", > "imagePositionX" : "-24", > "imagePositionY" : "-8", > "object" : "outpostrailhatch", > "tilesetDirection" : "right" > }, > "1797" : { > "//description" : "This door is made of some sort of bulletproof material. It has a composite rail running through it.", > "//name" : "outpostrailairlock", > "//shortdescription" : "Rail Airlock Door", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "outpostrailairlock", > "tilesetDirection" : "right" > }, > "1798" : { > "//description" : "This automated door is made of some sort of bulletproof material.", > "//name" : "outposthatchlarge", > "//shortdescription" : "Large Airlock Hatch", > "imagePositionX" : "-24", > "imagePositionY" : "-8", > "object" : "outposthatchlarge", > "tilesetDirection" : "right" > }, > "1799" : { > "//description" : "This fluorescent light has seen better days.", > "//name" : "flickeringfluorescentlight_orientation3", > "//shortdescription" : "Damaged Fluorescent Light", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "flickeringfluorescentlight", > "tilesetDirection" : "right" > }, 7466a7539,7583 > "1800" : { > "//description" : "This fluorescent light has seen better days.", > "//name" : "flickeringfluorescentlight_orientation4", > "//shortdescription" : "Damaged Fluorescent Light", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "flickeringfluorescentlight", > "tilesetDirection" : "right" > }, > "1801" : { > "//name" : "industrialclassdoor", > "invalid" : "true" > }, > "1802" : { > "//name" : "industrialclasscomputer", > "invalid" : "true" > }, > "1803" : { > "//name" : "industrialclasscrate", > "invalid" : "true" > }, > "1804" : { > "//name" : "industrialclasschair", > "invalid" : "true" > }, > "1805" : { > "//name" : "industrialclasstable", > "invalid" : "true" > }, > "1806" : { > "//name" : "industrialclasscanister", > "invalid" : "true" > }, > "1807" : { > "//name" : "industrialclasslight", > "invalid" : "true" > }, > "1808" : { > "//name" : "industrialclassdisplay", > "invalid" : "true" > }, > "1809" : { > "//name" : "industrialclassstoragelocker", > "invalid" : "true" > }, 7475,7479c7592,8581 < "182" : { < "//description" : "A mysterious wooden crate.", < "//name" : "woodencrate1", < "//shortdescription" : "Wooden Crate", < "imagePositionX" : "-8", --- > "1810" : { > "//description" : "A metal wall light which emits a sickly orange glow.", > "//name" : "industriallight", > "//shortdescription" : "Industrial Light", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "industriallight", > "tilesetDirection" : "right" > }, > "1811" : { > "//description" : "A solid metal chair with only the slightest bit of padding.", > "//name" : "industrialchair", > "//shortdescription" : "Industrial Chair", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "industrialchair", > "tilesetDirection" : "right" > }, > "1812" : { > "//description" : "A display which appears to be connected to some sort of radar.", > "//name" : "industrialdisplay", > "//shortdescription" : "Industrial Display", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "industrialdisplay", > "tilesetDirection" : "right" > }, > "1813" : { > "//description" : "A sealed metal canister, that might be used to store hazardous liquids.", > "//name" : "industrialcanister", > "//shortdescription" : "Industrial Canister", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "industrialcanister", > "tilesetDirection" : "right" > }, > "1814" : { > "//description" : "A tough automated door, reinforced to be able to survive intense intergalactic conditions.", > "//name" : "industrialdoor", > "//shortdescription" : "Industrial Door", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "industrialdoor", > "tilesetDirection" : "right" > }, > "1815" : { > "//description" : "A cold metal table, built to survive turbulent trips.", > "//name" : "industrialtable", > "//shortdescription" : "Industrial Table", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "industrialtable", > "tilesetDirection" : "right" > }, > "1816" : { > "//description" : "An old metal computer tower. Untidy cables hang out of its back.", > "//name" : "industrialcomputer", > "//shortdescription" : "Industrial Computer", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "industrialcomputer", > "tilesetDirection" : "right" > }, > "1817" : { > "//description" : "A pressurised cargo crate, designed to withstand the harsh conditions of space travel.", > "//name" : "industrialcrate", > "//shortdescription" : "Industrial Crate", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "industrialcrate", > "tilesetDirection" : "right" > }, > "1818" : { > "//description" : "A wall mounted locker, complete with hazard stripes and a red light.", > "//name" : "industrialstoragelocker", > "//shortdescription" : "Industrial Storage Locker", > "imagePositionX" : "-16", > "imagePositionY" : "-8", > "object" : "industrialstoragelocker" > }, > "1819" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble3_orientation2", > "//shortdescription" : "Ship Greeble 3", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble3", > "tilesetDirection" : "right" > }, > "182" : { > "//description" : "A mysterious wooden crate.", > "//name" : "woodencrate1", > "//shortdescription" : "Wooden Crate", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "woodencrate1", > "tilesetDirection" : "right" > }, > "1820" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble3_orientation3", > "//shortdescription" : "Ship Greeble 3", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble3", > "tilesetDirection" : "right" > }, > "1821" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble3_orientation4", > "//shortdescription" : "Ship Greeble 3", > "imagePositionX" : "0", > "imagePositionY" : "-16", > "object" : "shipgreeble3", > "tilesetDirection" : "left" > }, > "1822" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble3_orientation5", > "//shortdescription" : "Ship Greeble 3", > "imagePositionX" : "0", > "imagePositionY" : "-16", > "object" : "shipgreeble3", > "tilesetDirection" : "right" > }, > "1823" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble3_orientation6", > "//shortdescription" : "Ship Greeble 3", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble3", > "tilesetDirection" : "right" > }, > "1824" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble3_orientation7", > "//shortdescription" : "Ship Greeble 3", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble3", > "tilesetDirection" : "right" > }, > "1825" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble4_orientation2", > "//shortdescription" : "Ship Greeble 4", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble4", > "tilesetDirection" : "right" > }, > "1826" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble4_orientation3", > "//shortdescription" : "Ship Greeble 4", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble4", > "tilesetDirection" : "right" > }, > "1827" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble4_orientation4", > "//shortdescription" : "Ship Greeble 4", > "imagePositionX" : "0", > "imagePositionY" : "-16", > "object" : "shipgreeble4", > "tilesetDirection" : "left" > }, > "1828" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble4_orientation5", > "//shortdescription" : "Ship Greeble 4", > "imagePositionX" : "0", > "imagePositionY" : "-16", > "object" : "shipgreeble4", > "tilesetDirection" : "right" > }, > "1829" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble4_orientation6", > "//shortdescription" : "Ship Greeble 4", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble4", > "tilesetDirection" : "right" > }, > "183" : { > "//description" : "A large, formidable bug. Can survive extreme heat.", > "//name" : "fireygiant", > "//shortdescription" : "Fireygiant", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "fireygiant", > "tilesetDirection" : "right" > }, > "1830" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble4_orientation7", > "//shortdescription" : "Ship Greeble 4", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble4", > "tilesetDirection" : "right" > }, > "1831" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble2_orientation2", > "//shortdescription" : "Ship Greeble 2", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble2", > "tilesetDirection" : "right" > }, > "1832" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble2_orientation3", > "//shortdescription" : "Ship Greeble 2", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble2", > "tilesetDirection" : "right" > }, > "1833" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble2_orientation4", > "//shortdescription" : "Ship Greeble 2", > "imagePositionX" : "0", > "imagePositionY" : "-16", > "object" : "shipgreeble2", > "tilesetDirection" : "left" > }, > "1834" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble2_orientation5", > "//shortdescription" : "Ship Greeble 2", > "imagePositionX" : "0", > "imagePositionY" : "-16", > "object" : "shipgreeble2", > "tilesetDirection" : "right" > }, > "1835" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble2_orientation6", > "//shortdescription" : "Ship Greeble 2", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble2", > "tilesetDirection" : "right" > }, > "1836" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble2_orientation7", > "//shortdescription" : "Ship Greeble 2", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble2", > "tilesetDirection" : "right" > }, > "1837" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble1_orientation2", > "//shortdescription" : "Ship Greeble 1", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble1", > "tilesetDirection" : "right" > }, > "1838" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble1_orientation3", > "//shortdescription" : "Ship Greeble 1", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble1", > "tilesetDirection" : "right" > }, > "1839" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble1_orientation4", > "//shortdescription" : "Ship Greeble 1", > "imagePositionX" : "0", > "imagePositionY" : "-8", > "object" : "shipgreeble1", > "tilesetDirection" : "left" > }, > "184" : { > "//description" : "Don't wanna step in those...", > "//name" : "greengroundspike1", > "//shortdescription" : "Sharp Spikes", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "greengroundspike1" > }, > "1840" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble1_orientation5", > "//shortdescription" : "Ship Greeble 1", > "imagePositionX" : "0", > "imagePositionY" : "-8", > "object" : "shipgreeble1", > "tilesetDirection" : "right" > }, > "1841" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble1_orientation6", > "//shortdescription" : "Ship Greeble 1", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble1", > "tilesetDirection" : "right" > }, > "1842" : { > "//description" : "A strange piece of ship. Looks like it might serve a purpose, but who really knows?", > "//name" : "shipgreeble1_orientation7", > "//shortdescription" : "Ship Greeble 1", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "shipgreeble1", > "tilesetDirection" : "right" > }, > "1843" : { > "//description" : "Calls and stops rail trams", > "//name" : "railtramstop", > "//shortdescription" : "Rail Tram Stop", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "railtramstop", > "tilesetDirection" : "right" > }, > "1844" : { > "//description" : "A cheap bed with a sturdy metal frame. It doesn't seem very comfortable.", > "//name" : "industrialbed", > "//shortdescription" : "Industrial Bed", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "industrialbed", > "tilesetDirection" : "right" > }, > "1845" : { > "//description" : "Equip and customise your personal mech!", > "//name" : "mechassemblystation", > "//shortdescription" : "Mech Assembly Station", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "mechassemblystation", > "tilesetDirection" : "right" > }, > "1846" : { > "//description" : "A large, sleek automated hatch, made from the same materials found on the exterior of space stations.", > "//name" : "stationhatch", > "//shortdescription" : "Station Hatch", > "imagePositionX" : "-24", > "imagePositionY" : "-8", > "object" : "stationhatch", > "tilesetDirection" : "right" > }, > "1847" : { > "//description" : "A sleek automated door, made from the same materials found on the exterior of space stations.", > "//name" : "stationdoor", > "//shortdescription" : "Station Door", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "stationdoor", > "tilesetDirection" : "right" > }, > "1848" : { > "//description" : "A large sleek hatch that has a built-in rail connector for use with elevators.", > "//name" : "stationrailhatch", > "//shortdescription" : "Station Rail Hatch", > "imagePositionX" : "-24", > "imagePositionY" : "-8", > "object" : "stationrailhatch", > "tilesetDirection" : "right" > }, > "1849" : { > "//description" : "A large, sleek automated door, made from the same materials found on the exterior of space stations.", > "//name" : "stationdoorlarge", > "//shortdescription" : "Station Large Door", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "stationdoorlarge", > "tilesetDirection" : "right" > }, > "185" : { > "//description" : "Dirturchins are squidgy and kind of tasteless.", > "//name" : "dirturchinseed", > "//shortdescription" : "Dirturchin Seed", > "imagePositionX" : "0", > "imagePositionY" : "0", > "object" : "dirturchinseed", > "tilesetDirection" : "right" > }, > "1850" : { > "//description" : "A round heavy metal table.", > "//name" : "stationtable", > "//shortdescription" : "Station Table", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "stationtable", > "tilesetDirection" : "right" > }, > "1851" : { > "//description" : "A flickering holographic display of an unidentified planet.", > "//name" : "stationhologram", > "//shortdescription" : "Station Hologram", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "stationhologram", > "tilesetDirection" : "right" > }, > "1852" : { > "//description" : "A vending machine, there are some quality snacks in here.", > "//name" : "stationvendingmachine", > "//shortdescription" : "Station Vending Machine", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "stationvendingmachine", > "tilesetDirection" : "right" > }, > "1853" : { > "//description" : "A long industrial looking fluorescent light.", > "//name" : "stationlighth", > "//shortdescription" : "Wide Station Light", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "stationlighth", > "tilesetDirection" : "right" > }, > "1854" : { > "//description" : "A curved, formal looking metal chair.", > "//name" : "stationchair", > "//shortdescription" : "Station Chair", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "stationchair", > "tilesetDirection" : "right" > }, > "1855" : { > "//description" : "A wall-mounted screen lit up with lots of blue text.", > "//name" : "stationdisplay", > "//shortdescription" : "Station Display", > "imagePositionX" : "-16", > "imagePositionY" : "-8", > "object" : "stationdisplay", > "tilesetDirection" : "right" > }, > "1856" : { > "//description" : "This energy field can contain both atmosphere and artificial gravity.", > "//name" : "dockingfield", > "//shortdescription" : "Docking Field", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "dockingfield", > "tilesetDirection" : "right" > }, > "1857" : { > "//description" : "This energy field can contain both atmosphere and artificial gravity.", > "//name" : "dockingfield_orientation2", > "//shortdescription" : "Docking Field", > "imagePositionX" : "-48", > "imagePositionY" : "0", > "object" : "dockingfield", > "tilesetDirection" : "right" > }, > "1858" : { > "//description" : "This energy field can contain both atmosphere and artificial gravity.", > "//name" : "dockingfield_orientation3", > "//shortdescription" : "Docking Field", > "imagePositionX" : "-48", > "imagePositionY" : "0", > "object" : "dockingfield", > "tilesetDirection" : "right" > }, > "1859" : { > "//description" : "This guidance beacon marks the position of a landing bay.", > "//name" : "mechbeacon", > "//shortdescription" : "Landing Beacon", > "imagePositionX" : "-16", > "imagePositionY" : "-16", > "object" : "mechbeacon", > "tilesetDirection" : "right" > }, > "186" : { > "//description" : "I don't feel welcome here...", > "//name" : "penguinposter1", > "//shortdescription" : "Penguins Only Sign", > "imagePositionX" : "-16", > "imagePositionY" : "-16", > "object" : "penguinposter1", > "tilesetDirection" : "right" > }, > "1860" : { > "//description" : "A vent typically used for keeping the air clean aboard space stations.", > "//name" : "stationceilingvent", > "//shortdescription" : "Station Ceiling Vent", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "stationceilingvent", > "tilesetDirection" : "right" > }, > "1861" : { > "//description" : "A long industrial looking fluorescent light.", > "//name" : "stationlightv", > "//shortdescription" : "Tall Station Light", > "imagePositionX" : "0", > "imagePositionY" : "-16", > "object" : "stationlightv", > "tilesetDirection" : "right" > }, > "1862" : { > "//description" : "A large rotating generator, or radar, or perhaps an engine...", > "//name" : "stationpylon", > "//shortdescription" : "Station Pylon", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "stationpylon", > "tilesetDirection" : "right" > }, > "1863" : { > "//description" : "A sleek metal bench.", > "//name" : "stationbench", > "//shortdescription" : "Station Bench", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "stationbench", > "tilesetDirection" : "right" > }, > "1864" : { > "//description" : "A panel which is designed to attach to a space structure or ship.", > "//name" : "stationwallpanel", > "//shortdescription" : "Station Wall Panel", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "stationwallpanel", > "tilesetDirection" : "right" > }, > "1865" : { > "//description" : "A small terminal, with a compact display screen.", > "//name" : "stationconsole", > "//shortdescription" : "Station Console", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "stationconsole", > "tilesetDirection" : "right" > }, > "1866" : { > "//description" : "A shipping crate, designed to ship space goods.", > "//name" : "stationcrate", > "//shortdescription" : "Station Crate", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "stationcrate", > "tilesetDirection" : "right" > }, > "1867" : { > "//description" : "A modern chair design, commonly found inside spaceships.", > "//name" : "astrochair", > "//shortdescription" : "Astro Chair", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "astrochair", > "tilesetDirection" : "right" > }, > "1868" : { > "//description" : "A large computer server rack, with brackets for floor mounting.", > "//name" : "astroserver", > "//shortdescription" : "Astro Server", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "astroserver", > "tilesetDirection" : "right" > }, > "1869" : { > "//description" : "A solid, floor mounted working surface.", > "//name" : "astrotable", > "//shortdescription" : "Astro Table", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "astrotable", > "tilesetDirection" : "right" > }, > "187" : { > "//description" : "A creepy bone table. Looks more like a sacrificial altar. Good for picnics.", > "//name" : "bonetable", > "//shortdescription" : "Bone Table", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "bonetable", > "tilesetDirection" : "right" > }, > "1870" : { > "//description" : "Brackets are built into the base to attach this monitor to the ceiling.", > "//name" : "astroceilingmonitor", > "//shortdescription" : "Astro Ceiling Monitor", > "imagePositionX" : "-16", > "imagePositionY" : "-24", > "object" : "astroceilingmonitor", > "tilesetDirection" : "right" > }, > "1871" : { > "//description" : "Brackets are built into the base to attach this monitor to the ceiling.", > "//name" : "astroceilingmonitor_orientation1", > "//shortdescription" : "Astro Ceiling Monitor", > "imagePositionX" : "-24", > "imagePositionY" : "-24", > "object" : "astroceilingmonitor", > "tilesetDirection" : "right" > }, > "1872" : { > "//description" : "A modern metal cabinet with floor mounting brackets.", > "//name" : "astrocabinet", > "//shortdescription" : "Astro Cabinet", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "astrocabinet", > "tilesetDirection" : "right" > }, > "1873" : { > "//description" : "This door forms an airtight seal when closed.", > "//name" : "astrodoor", > "//shortdescription" : "Astro Door", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "astrodoor", > "tilesetDirection" : "right" > }, > "1874" : { > "//description" : "A panel designed for inside space environments.", > "//name" : "astrowallpanel", > "//shortdescription" : "Astro Wall Panel", > "imagePositionX" : "-16", > "imagePositionY" : "-8", > "object" : "astrowallpanel", > "tilesetDirection" : "right" > }, > "1875" : { > "//description" : "An astro panel storage locker.", > "//name" : "astrostoragelocker", > "//shortdescription" : "Astro Storage Locker", > "imagePositionX" : "-16", > "imagePositionY" : "-8", > "object" : "astrostoragelocker" > }, > "1876" : { > "//description" : "An artificial atmospheric system exhaust port.", > "//name" : "astrovent", > "//shortdescription" : "Astro Vent", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "astrovent", > "tilesetDirection" : "right" > }, > "1877" : { > "//description" : "A large container specialized for space transport.", > "//name" : "astrocrate", > "//shortdescription" : "Astro Crate", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "astrocrate", > "tilesetDirection" : "right" > }, > "1878" : { > "//description" : "A compact electronic display monitor.", > "//name" : "astromonitor", > "//shortdescription" : "Astro Monitor", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "astromonitor", > "tilesetDirection" : "right" > }, > "1879" : { > "//description" : "A ceiling mounted utility lantern.", > "//name" : "astrolight", > "//shortdescription" : "Astro Light", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "astrolight", > "tilesetDirection" : "right" > }, > "188" : { > "//name" : "tier6bed", > "invalid" : "true" > }, > "1880" : { > "//description" : "A large display built to monitor a variety of devices.", > "//name" : "astroconsole", > "//shortdescription" : "Astro Console", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "astroconsole", > "tilesetDirection" : "right" > }, > "1881" : { > "//description" : "A sign with an image indicating a medical station.", > "//name" : "stationtradesignmedic", > "//shortdescription" : "Medic Station Sign", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "stationtradesignmedic", > "tilesetDirection" : "right" > }, > "1882" : { > "//description" : "A sign with an image of an electronic component, indicating an electronics station.", > "//name" : "stationtradesignelectronics", > "//shortdescription" : "Electronics Station Sign", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "stationtradesignelectronics", > "tilesetDirection" : "right" > }, > "1883" : { > "//description" : "A sign with an image of a gun, indicating a weapons station.", > "//name" : "stationtradesignweapons", > "//shortdescription" : "Weapons Station Sign", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "stationtradesignweapons", > "tilesetDirection" : "right" > }, > "1884" : { > "//description" : "A sign with an image of food utensils, indicating a food station.", > "//name" : "stationtradesignfood", > "//shortdescription" : "Food Station Sign", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "stationtradesignfood", > "tilesetDirection" : "right" > }, > "1885" : { > "//description" : "A bed which is designed to perform medical scans.", > "//name" : "stationmedscanner", > "//shortdescription" : "Station Medical Scanner", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "stationmedscanner", > "tilesetDirection" : "right" > }, > "1886" : { > "//description" : "A metal sheet with a target painted on. Perfect for practicing your aim.", > "//name" : "shootingtarget", > "//shortdescription" : "Shooting Target", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "shootingtarget", > "tilesetDirection" : "right" > }, > "1887" : { > "//description" : "A large breakable capsule. Wonder what's inside.", > "//name" : "capsulebig", > "//shortdescription" : "Large Capsule", > "imagePositionX" : "0", > "imagePositionY" : "0", > "object" : "capsulebig" > }, > "1888" : { > "//description" : "A small breakable capsule. Wonder what's inside.", > "//name" : "capsulesmall", > "//shortdescription" : "Small Capsule", > "imagePositionX" : "0", > "imagePositionY" : "0", > "object" : "capsulesmall" > }, > "1889" : { > "//description" : "A large breakable capsule. Wonder what's inside.", > "//name" : "capsulespace", > "//shortdescription" : "Surface-Mounted Capsule", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "capsulespace" > }, > "189" : { > "//description" : "A common iron bed.", > "//name" : "tier1bed", > "//shortdescription" : "Iron Bed", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "tier1bed", > "tilesetDirection" : "right" > }, > "1890" : { > "//description" : "A large breakable capsule. Wonder what's inside.", > "//name" : "capsulespace_orientation1", > "//shortdescription" : "Surface-Mounted Capsule", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "capsulespace" > }, > "1891" : { > "//description" : "A large breakable capsule. Wonder what's inside.", > "//name" : "capsulespace_orientation2", > "//shortdescription" : "Surface-Mounted Capsule", > "imagePositionX" : "0", > "imagePositionY" : "-8", > "object" : "capsulespace" > }, > "1892" : { > "//description" : "A large breakable capsule. Wonder what's inside.", > "//name" : "capsulespace_orientation3", > "//shortdescription" : "Surface-Mounted Capsule", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "capsulespace" > }, > "1893" : { > "//description" : "A breakable capsule. Wonder what's inside.", > "//name" : "capsulemed", > "//shortdescription" : "Medium Capsule", > "imagePositionX" : "0", > "imagePositionY" : "0", > "object" : "capsulemed" > }, > "1894" : { > "//description" : "I wonder how quickly that would cook a burger.", > "//name" : "encountersmallboosterflame", > "//shortdescription" : "Damaging Small Booster Flame", > "imagePositionX" : "-16", > "imagePositionY" : "-24", > "object" : "encountersmallboosterflame", > "tilesetDirection" : "right" > }, > "1895" : { > "//description" : "I wonder how quickly that would cook a burger.", > "//name" : "encountersmallboosterflame_orientation1", > "//shortdescription" : "Damaging Small Booster Flame", > "imagePositionX" : "-16", > "imagePositionY" : "-24", > "object" : "encountersmallboosterflame", > "tilesetDirection" : "right" > }, > "1896" : { > "//description" : "I wonder how quickly that would cook a burger.", > "//name" : "encounterboosterflame", > "//shortdescription" : "Damaging Booster Flame", > "imagePositionX" : "-40", > "imagePositionY" : "-32", > "object" : "encounterboosterflame", > "tilesetDirection" : "right" > }, > "1897" : { > "//description" : "I wonder how quickly that would cook a burger.", > "//name" : "encountersmallboosterflame2", > "//shortdescription" : "Damaging Small Booster Flame", > "imagePositionX" : "-16", > "imagePositionY" : "-24", > "object" : "encountersmallboosterflame2", > "tilesetDirection" : "right" > }, > "1898" : { > "//description" : "I wonder how quickly that would cook a burger.", > "//name" : "encountersmallboosterflame2_orientation1", > "//shortdescription" : "Damaging Small Booster Flame", > "imagePositionX" : "-16", > "imagePositionY" : "-24", > "object" : "encountersmallboosterflame2", > "tilesetDirection" : "right" > }, > "1899" : { > "//description" : "I wonder how quickly that would cook a burger.", > "//name" : "encountersmallboosterflame_orientation2", > "//shortdescription" : "Damaging Small Booster Flame", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "encountersmallboosterflame", > "tilesetDirection" : "right" > }, > "19" : { > "//description" : "A Crystal plant. Truns out money does grow on trees.", > "//name" : "wildcrystalplantseed", > "//shortdescription" : "Crystal Plant Seed", > "imagePositionX" : "0", > "imagePositionY" : "0", > "object" : "wildcrystalplantseed", > "tilesetDirection" : "right" > }, > "190" : { > "//description" : "The vibrant flesh of a neonmelon tastes like bubblegum.", > "//name" : "neonmelonseed", > "//shortdescription" : "Neonmelon Seed", > "imagePositionX" : "0", > "imagePositionY" : "0", > "object" : "neonmelonseed", > "tilesetDirection" : "right" > }, > "1900" : { > "//description" : "I wonder how quickly that would cook a burger.", > "//name" : "encountersmallboosterflame_orientation3", > "//shortdescription" : "Damaging Small Booster Flame", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "encountersmallboosterflame", > "tilesetDirection" : "right" > }, > "1901" : { > "//description" : "I wonder how quickly that would cook a burger.", > "//name" : "encountersmallboosterflame2_orientation2", > "//shortdescription" : "Damaging Small Booster Flame", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "encountersmallboosterflame2", > "tilesetDirection" : "right" > }, > "1902" : { > "//description" : "I wonder how quickly that would cook a burger.", > "//name" : "encountersmallboosterflame2_orientation3", > "//shortdescription" : "Damaging Small Booster Flame", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "encountersmallboosterflame2", > "tilesetDirection" : "right" > }, > "1903" : { > "//description" : "I wonder how quickly that would cook a burger.", > "//name" : "encounterboosterflamehuman", > "//shortdescription" : "Damaging Booster Flame", > "imagePositionX" : "-32", > "imagePositionY" : "-48", > "object" : "encounterboosterflamehuman", > "tilesetDirection" : "right" > }, > "1904" : { > "//description" : "I wonder how quickly that would cook a burger.", > "//name" : "encounterbigboosterflame", > "//shortdescription" : "Damaging Booster Flame", > "imagePositionX" : "-32", > "imagePositionY" : "-32", > "object" : "encounterbigboosterflame", > "tilesetDirection" : "right" > }, > "1905" : { > "//description" : "This energy field can contain both atmosphere and artificial gravity.", > "//name" : "dockingfieldsmall", > "//shortdescription" : "Docking Field (Small)", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "dockingfieldsmall", > "tilesetDirection" : "right" > }, > "1906" : { > "//description" : "This energy field can contain both atmosphere and artificial gravity.", > "//name" : "dockingfieldsmall_orientation2", > "//shortdescription" : "Docking Field (Small)", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "dockingfieldsmall", > "tilesetDirection" : "right" > }, > "1907" : { > "//description" : "This energy field can contain both atmosphere and artificial gravity.", > "//name" : "dockingfieldsmall_orientation3", > "//shortdescription" : "Docking Field (Small)", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "dockingfieldsmall", > "tilesetDirection" : "right" > }, > "1908" : { > "//description" : "A port which modular station expansion pieces can be attached to.", > "//name" : "expansionslot", > "//shortdescription" : "Expansion Slot", > "imagePositionX" : "-16", > "imagePositionY" : "-8", > "object" : "expansionslot" > }, > "1909" : { > "//description" : "A console for monitoring the conditions inside an orbiting station.", > "//name" : "playerstationconsole", > "//shortdescription" : "Station Console", > "imagePositionX" : "-16", > "imagePositionY" : "-8", > "object" : "playerstationconsole" > }, > "191" : { > "//name" : "roboticcraftingtable", > "invalid" : "true" > }, > "1910" : { > "//description" : "A hanging mech booster.", > "//name" : "hangingbooster", > "//shortdescription" : "Hanging Booster", > "imagePositionX" : "-16", > "imagePositionY" : "-32", > "object" : "hangingbooster" > }, > "1911" : { > "//description" : "Used to produce modular mech components.", > "//name" : "mechcraftingtable", > "//shortdescription" : "^orange;Mech Part Crafting Table^white;", > "imagePositionX" : "-32", 7481c8583 < "object" : "woodencrate1", --- > "object" : "mechcraftingtable", 7484,7487c8586,8589 < "183" : { < "//description" : "A large, formidable bug. Can survive extreme heat.", < "//name" : "fireygiant", < "//shortdescription" : "Fireygiant", --- > "1912" : { > "//description" : "This practice target outputs a wire signal until broken.", > "//name" : "wiredtarget", > "//shortdescription" : "Wired Target", 7489,7490c8591,8592 < "imagePositionY" : "0", < "object" : "fireygiant", --- > "imagePositionY" : "-8", > "object" : "wiredtarget", 7493,7496c8595,8598 < "184" : { < "//description" : "Don't wanna step in those...", < "//name" : "greengroundspike1", < "//shortdescription" : "Sharp Spikes", --- > "1913" : { > "//description" : "...", > "//name" : "invisiblewallswitch", > "//shortdescription" : "Invisible Wall Switch", 7498,7507c8600,8601 < "imagePositionY" : "0", < "object" : "greengroundspike1" < }, < "185" : { < "//description" : "Dirturchins are squidgy and kind of tasteless.", < "//name" : "dirturchinseed", < "//shortdescription" : "Dirturchin Seed", < "imagePositionX" : "0", < "imagePositionY" : "0", < "object" : "dirturchinseed", --- > "imagePositionY" : "-8", > "object" : "invisiblewallswitch", 7510,7514c8604,8608 < "186" : { < "//description" : "I don't feel welcome here...", < "//name" : "penguinposter1", < "//shortdescription" : "Penguins Only Sign", < "imagePositionX" : "-16", --- > "1914" : { > "//description" : "A port which modular station expansion pieces can be attached to.", > "//name" : "expansionslothorizontal", > "//shortdescription" : "Horizontal Expansion Slot", > "imagePositionX" : "-8", 7516c8610 < "object" : "penguinposter1", --- > "object" : "expansionslothorizontal", 7519,7523c8613,8617 < "187" : { < "//description" : "A creepy bone table. Looks more like a sacrificial altar. Good for picnics.", < "//name" : "bonetable", < "//shortdescription" : "Bone Table", < "imagePositionX" : "-16", --- > "1915" : { > "//description" : "A metal bar with with a smoothly polished surface.", > "//name" : "spacebarbottom", > "//shortdescription" : "Space Bar", > "imagePositionX" : "-32", 7525c8619 < "object" : "bonetable", --- > "object" : "spacebarbottom", 7528,7536c8622,8634 < "188" : { < "//name" : "tier6bed", < "invalid" : "true" < }, < "189" : { < "//description" : "A common iron bed.", < "//name" : "tier1bed", < "//shortdescription" : "Iron Bed", < "imagePositionX" : "-24", --- > "1916" : { > "//description" : "Start piece background", > "//name" : "stationbackgroundstart", > "//shortdescription" : "Start piece background", > "imagePositionX" : "-136", > "imagePositionY" : "-136", > "object" : "stationbackgroundstart" > }, > "1917" : { > "//description" : "A personal teleporter, connects to bookmarked locations.", > "//name" : "remoteteleporter", > "//shortdescription" : "Outpost Teleporter", > "imagePositionX" : "-32", 7538,7539c8636 < "object" : "tier1bed", < "tilesetDirection" : "right" --- > "object" : "remoteteleporter" 7541,7547c8638,8644 < "19" : { < "//description" : "A Crystal plant. Truns out money does grow on trees.", < "//name" : "wildcrystalplantseed", < "//shortdescription" : "Crystal Plant Seed", < "imagePositionX" : "0", < "imagePositionY" : "0", < "object" : "wildcrystalplantseed", --- > "1918" : { > "//description" : "Mech bay piece background", > "//name" : "stationbackgroundmechbay", > "//shortdescription" : "Mech bay piece background", > "imagePositionX" : "-72", > "imagePositionY" : "-40", > "object" : "stationbackgroundmechbay", 7550,7554c8647,8651 < "190" : { < "//description" : "The vibrant flesh of a neonmelon tastes like bubblegum.", < "//name" : "neonmelonseed", < "//shortdescription" : "Neonmelon Seed", < "imagePositionX" : "0", --- > "1919" : { > "//description" : "A legendary testament to early space travel.", > "//name" : "lunarlander", > "//shortdescription" : "Lunar Lander", > "imagePositionX" : "-32", 7556c8653 < "object" : "neonmelonseed", --- > "object" : "lunarlander", 7559,7562d8655 < "191" : { < "//name" : "roboticcraftingtable", < "invalid" : "true" < }, 7570a8664,8708 > "1920" : { > "//description" : "A screen displaying a series of space-themed photographs.", > "//name" : "spaceslideshow", > "//shortdescription" : "Space Slideshow", > "imagePositionX" : "-32", > "imagePositionY" : "-16", > "object" : "spaceslideshow", > "tilesetDirection" : "right" > }, > "1921" : { > "//description" : "A scientific telescope, perfect for observing the stars.", > "//name" : "telescope", > "//shortdescription" : "Astronomy Telescope", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "telescope", > "tilesetDirection" : "right" > }, > "1922" : { > "//description" : "A scientific telescope, perfect for observing the stars.", > "//name" : "telescope_orientation1", > "//shortdescription" : "Astronomy Telescope", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "telescope", > "tilesetDirection" : "right" > }, > "1923" : { > "//description" : "The label reads, \"A braindead bioweapon created by irresponsible human scientists.\"", > "//name" : "paraspriteaf", > "//shortdescription" : "Parasprite Figurine", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "paraspriteaf", > "tilesetDirection" : "right" > }, > "1924" : { > "//description" : "An arcade machine with an interactive narrative game.", > "//name" : "beautifulattempt", > "//shortdescription" : "Beautiful Attempt! Machine", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "beautifulattempt", > "tilesetDirection" : "right" > }, 7845c8983 < "//description" : "A holiday pole! Its festively striped.", --- > "//description" : "A holiday pole! It's festively striped.", 11919,11920c13057,13058 < "imagePositionX" : "-8", < "imagePositionY" : "0", --- > "imagePositionX" : "0", > "imagePositionY" : "-8", 11937,11938c13075,13076 < "imagePositionX" : "0", < "imagePositionY" : "-8", --- > "imagePositionX" : "-8", > "imagePositionY" : "0", 12577c13715 < "//description" : "A string of small, twinkling fairy lights.", --- > "//description" : "This string of small, twinkling holiday lights is the perfect way to get festive.", 12579c13717 < "//shortdescription" : "Fairy Lights", --- > "//shortdescription" : "Holiday Lights", 12881c14019 < "//description" : "This door is made of some sort of bulletproof material.", --- > "//description" : "This automated door is made of some sort of bulletproof material.", 12883c14021 < "//shortdescription" : "Large Airlock", --- > "//shortdescription" : "Large Airlock Door", 13994c15132 < "//description" : "This door is made of some sort of bulletproof material.", --- > "//description" : "This automated door is made of some sort of bulletproof material.", 13996c15134 < "//shortdescription" : "Small Airlock", --- > "//shortdescription" : "Small Airlock Door", 14973a16112 > "//description" : "...", 14975c16114,16118 < "invalid" : "true" --- > "//shortdescription" : "Invisible Sound Source", > "imagePositionX" : "-8", > "imagePositionY" : "-8", > "object" : "invisiblesound", > "tilesetDirection" : "right" 15012c16155,16156 < "object" : "flickeringfluorescentlight" --- > "object" : "flickeringfluorescentlight", > "tilesetDirection" : "right" 15020c16164,16165 < "object" : "flickeringfluorescentlight" --- > "object" : "flickeringfluorescentlight", > "tilesetDirection" : "right" 15028c16173,16174 < "object" : "flickeringfluorescentlight" --- > "object" : "flickeringfluorescentlight", > "tilesetDirection" : "right" 17722a18869,18892 > "1792" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble3.png" > }, > "1793" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble4.png" > }, > "1794" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble2.png" > }, > "1795" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble1.png" > }, > "1796" : { > "image" : "../../../../../tiled/packed/objects/outpostrailhatch.png" > }, > "1797" : { > "image" : "../../../../../tiled/packed/objects/outpostrailairlock.png" > }, > "1798" : { > "image" : "../../../../../tiled/packed/objects/outposthatchlarge.png" > }, > "1799" : { > "image" : "../../../../../tiled/packed/objects/flickeringfluorescentlight_orientation3.png" > }, 17728a18899,18928 > "1800" : { > "image" : "../../../../../tiled/packed/objects/flickeringfluorescentlight_orientation4.png" > }, > "1801" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "1802" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "1803" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "1804" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "1805" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "1806" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "1807" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "1808" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "1809" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, 17731a18932,18961 > "1810" : { > "image" : "../../../../../tiled/packed/objects/industriallight.png" > }, > "1811" : { > "image" : "../../../../../tiled/packed/objects/industrialchair.png" > }, > "1812" : { > "image" : "../../../../../tiled/packed/objects/industrialdisplay.png" > }, > "1813" : { > "image" : "../../../../../tiled/packed/objects/industrialcanister.png" > }, > "1814" : { > "image" : "../../../../../tiled/packed/objects/industrialdoor.png" > }, > "1815" : { > "image" : "../../../../../tiled/packed/objects/industrialtable.png" > }, > "1816" : { > "image" : "../../../../../tiled/packed/objects/industrialcomputer.png" > }, > "1817" : { > "image" : "../../../../../tiled/packed/objects/industrialcrate.png" > }, > "1818" : { > "image" : "../../../../../tiled/packed/objects/industrialstoragelocker.png" > }, > "1819" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble3_orientation2.png" > }, 17734a18965,18994 > "1820" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble3_orientation3.png" > }, > "1821" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble3_orientation4.png" > }, > "1822" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble3_orientation5.png" > }, > "1823" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble3_orientation6.png" > }, > "1824" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble3_orientation7.png" > }, > "1825" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble4_orientation2.png" > }, > "1826" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble4_orientation3.png" > }, > "1827" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble4_orientation4.png" > }, > "1828" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble4_orientation5.png" > }, > "1829" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble4_orientation6.png" > }, 17737a18998,19027 > "1830" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble4_orientation7.png" > }, > "1831" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble2_orientation2.png" > }, > "1832" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble2_orientation3.png" > }, > "1833" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble2_orientation4.png" > }, > "1834" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble2_orientation5.png" > }, > "1835" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble2_orientation6.png" > }, > "1836" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble2_orientation7.png" > }, > "1837" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble1_orientation2.png" > }, > "1838" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble1_orientation3.png" > }, > "1839" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble1_orientation4.png" > }, 17740a19031,19060 > "1840" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble1_orientation5.png" > }, > "1841" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble1_orientation6.png" > }, > "1842" : { > "image" : "../../../../../tiled/packed/objects/shipgreeble1_orientation7.png" > }, > "1843" : { > "image" : "../../../../../tiled/packed/objects/railtramstop.png" > }, > "1844" : { > "image" : "../../../../../tiled/packed/objects/industrialbed.png" > }, > "1845" : { > "image" : "../../../../../tiled/packed/objects/mechassemblystation.png" > }, > "1846" : { > "image" : "../../../../../tiled/packed/objects/stationhatch.png" > }, > "1847" : { > "image" : "../../../../../tiled/packed/objects/stationdoor.png" > }, > "1848" : { > "image" : "../../../../../tiled/packed/objects/stationrailhatch.png" > }, > "1849" : { > "image" : "../../../../../tiled/packed/objects/stationdoorlarge.png" > }, 17743a19064,19093 > "1850" : { > "image" : "../../../../../tiled/packed/objects/stationtable.png" > }, > "1851" : { > "image" : "../../../../../tiled/packed/objects/stationhologram.png" > }, > "1852" : { > "image" : "../../../../../tiled/packed/objects/stationvendingmachine.png" > }, > "1853" : { > "image" : "../../../../../tiled/packed/objects/stationlighth.png" > }, > "1854" : { > "image" : "../../../../../tiled/packed/objects/stationchair.png" > }, > "1855" : { > "image" : "../../../../../tiled/packed/objects/stationdisplay.png" > }, > "1856" : { > "image" : "../../../../../tiled/packed/objects/dockingfield.png" > }, > "1857" : { > "image" : "../../../../../tiled/packed/objects/dockingfield_orientation2.png" > }, > "1858" : { > "image" : "../../../../../tiled/packed/objects/dockingfield_orientation3.png" > }, > "1859" : { > "image" : "../../../../../tiled/packed/objects/mechbeacon.png" > }, 17746a19097,19126 > "1860" : { > "image" : "../../../../../tiled/packed/objects/stationceilingvent.png" > }, > "1861" : { > "image" : "../../../../../tiled/packed/objects/stationlightv.png" > }, > "1862" : { > "image" : "../../../../../tiled/packed/objects/stationpylon.png" > }, > "1863" : { > "image" : "../../../../../tiled/packed/objects/stationbench.png" > }, > "1864" : { > "image" : "../../../../../tiled/packed/objects/stationwallpanel.png" > }, > "1865" : { > "image" : "../../../../../tiled/packed/objects/stationconsole.png" > }, > "1866" : { > "image" : "../../../../../tiled/packed/objects/stationcrate.png" > }, > "1867" : { > "image" : "../../../../../tiled/packed/objects/astrochair.png" > }, > "1868" : { > "image" : "../../../../../tiled/packed/objects/astroserver.png" > }, > "1869" : { > "image" : "../../../../../tiled/packed/objects/astrotable.png" > }, 17749a19130,19159 > "1870" : { > "image" : "../../../../../tiled/packed/objects/astroceilingmonitor.png" > }, > "1871" : { > "image" : "../../../../../tiled/packed/objects/astroceilingmonitor_orientation1.png" > }, > "1872" : { > "image" : "../../../../../tiled/packed/objects/astrocabinet.png" > }, > "1873" : { > "image" : "../../../../../tiled/packed/objects/astrodoor.png" > }, > "1874" : { > "image" : "../../../../../tiled/packed/objects/astrowallpanel.png" > }, > "1875" : { > "image" : "../../../../../tiled/packed/objects/astrostoragelocker.png" > }, > "1876" : { > "image" : "../../../../../tiled/packed/objects/astrovent.png" > }, > "1877" : { > "image" : "../../../../../tiled/packed/objects/astrocrate.png" > }, > "1878" : { > "image" : "../../../../../tiled/packed/objects/astromonitor.png" > }, > "1879" : { > "image" : "../../../../../tiled/packed/objects/astrolight.png" > }, 17752a19163,19192 > "1880" : { > "image" : "../../../../../tiled/packed/objects/astroconsole.png" > }, > "1881" : { > "image" : "../../../../../tiled/packed/objects/stationtradesignmedic.png" > }, > "1882" : { > "image" : "../../../../../tiled/packed/objects/stationtradesignelectronics.png" > }, > "1883" : { > "image" : "../../../../../tiled/packed/objects/stationtradesignweapons.png" > }, > "1884" : { > "image" : "../../../../../tiled/packed/objects/stationtradesignfood.png" > }, > "1885" : { > "image" : "../../../../../tiled/packed/objects/stationmedscanner.png" > }, > "1886" : { > "image" : "../../../../../tiled/packed/objects/shootingtarget.png" > }, > "1887" : { > "image" : "../../../../../tiled/packed/objects/capsulebig.png" > }, > "1888" : { > "image" : "../../../../../tiled/packed/objects/capsulesmall.png" > }, > "1889" : { > "image" : "../../../../../tiled/packed/objects/capsulespace.png" > }, 17755a19196,19225 > "1890" : { > "image" : "../../../../../tiled/packed/objects/capsulespace_orientation1.png" > }, > "1891" : { > "image" : "../../../../../tiled/packed/objects/capsulespace_orientation2.png" > }, > "1892" : { > "image" : "../../../../../tiled/packed/objects/capsulespace_orientation3.png" > }, > "1893" : { > "image" : "../../../../../tiled/packed/objects/capsulemed.png" > }, > "1894" : { > "image" : "../../../../../tiled/packed/objects/encountersmallboosterflame.png" > }, > "1895" : { > "image" : "../../../../../tiled/packed/objects/encountersmallboosterflame_orientation1.png" > }, > "1896" : { > "image" : "../../../../../tiled/packed/objects/encounterboosterflame.png" > }, > "1897" : { > "image" : "../../../../../tiled/packed/objects/encountersmallboosterflame2.png" > }, > "1898" : { > "image" : "../../../../../tiled/packed/objects/encountersmallboosterflame2_orientation1.png" > }, > "1899" : { > "image" : "../../../../../tiled/packed/objects/encountersmallboosterflame_orientation2.png" > }, 17761a19232,19261 > "1900" : { > "image" : "../../../../../tiled/packed/objects/encountersmallboosterflame_orientation3.png" > }, > "1901" : { > "image" : "../../../../../tiled/packed/objects/encountersmallboosterflame2_orientation2.png" > }, > "1902" : { > "image" : "../../../../../tiled/packed/objects/encountersmallboosterflame2_orientation3.png" > }, > "1903" : { > "image" : "../../../../../tiled/packed/objects/encounterboosterflamehuman.png" > }, > "1904" : { > "image" : "../../../../../tiled/packed/objects/encounterbigboosterflame.png" > }, > "1905" : { > "image" : "../../../../../tiled/packed/objects/dockingfieldsmall.png" > }, > "1906" : { > "image" : "../../../../../tiled/packed/objects/dockingfieldsmall_orientation2.png" > }, > "1907" : { > "image" : "../../../../../tiled/packed/objects/dockingfieldsmall_orientation3.png" > }, > "1908" : { > "image" : "../../../../../tiled/packed/objects/expansionslot.png" > }, > "1909" : { > "image" : "../../../../../tiled/packed/objects/playerstationconsole.png" > }, 17764a19265,19294 > "1910" : { > "image" : "../../../../../tiled/packed/objects/hangingbooster.png" > }, > "1911" : { > "image" : "../../../../../tiled/packed/objects/mechcraftingtable.png" > }, > "1912" : { > "image" : "../../../../../tiled/packed/objects/wiredtarget.png" > }, > "1913" : { > "image" : "../../../../../tiled/packed/objects/invisiblewallswitch.png" > }, > "1914" : { > "image" : "../../../../../tiled/packed/objects/expansionslothorizontal.png" > }, > "1915" : { > "image" : "../../../../../tiled/packed/objects/spacebarbottom.png" > }, > "1916" : { > "image" : "../../../../../tiled/packed/objects/stationbackgroundstart.png" > }, > "1917" : { > "image" : "../../../../../tiled/packed/objects/remoteteleporter.png" > }, > "1918" : { > "image" : "../../../../../tiled/packed/objects/stationbackgroundmechbay.png" > }, > "1919" : { > "image" : "../../../../../tiled/packed/objects/lunarlander.png" > }, 17767a19298,19312 > "1920" : { > "image" : "../../../../../tiled/packed/objects/spaceslideshow.png" > }, > "1921" : { > "image" : "../../../../../tiled/packed/objects/telescope.png" > }, > "1922" : { > "image" : "../../../../../tiled/packed/objects/telescope_orientation1.png" > }, > "1923" : { > "image" : "../../../../../tiled/packed/objects/paraspriteaf.png" > }, > "1924" : { > "image" : "../../../../../tiled/packed/objects/beautifulattempt.png" > }, 20415c21960 < "image" : "../../../../../tiled/packed/../packed/invalid.png" --- > "image" : "../../../../../tiled/packed/objects/invisiblesound.png" tilesets\packed\objects-by-race\human.json 7c7 < "tilecount" : 279, --- > "tilecount" : 281, 157c157 < "//description" : "It's a patient file. He appears to be human, but... with two hearts?", --- > "//description" : "It's a screen displaying an old medical scan.", 368c368 < "//description" : "This appears to be an analysis of the environment outside of the bunker.", --- > "//description" : "This panel appears to monitor some obscure environmental data.", 1194c1194 < "//description" : "The flag of the Protectorate. Use ^green;[E]^white; to bookmark a teleportation location.", --- > "//description" : "The human flag. Use ^green;[E]^white; to bookmark a teleportation location.", 1203c1203 < "//description" : "The flag of the Protectorate. Use ^green;[E]^white; to bookmark a teleportation location.", --- > "//description" : "The human flag. Use ^green;[E]^white; to bookmark a teleportation location.", 1256c1256 < "//description" : "What does USCM stand for, again? Oh - United Systems Colonial Marines.", --- > "//description" : "What does USCM stand for, again?", 1712a1713,1720 > "279" : { > "//description" : "This metal sign indicates a mech work station.", > "//name" : "mechsign", > "//shortdescription" : "Mech Sign", > "imagePositionX" : "-16", > "imagePositionY" : "-16", > "object" : "mechsign" > }, 1721a1730,1738 > "280" : { > "//description" : "A purple door with an eye, fit for an evil cult.", > "//name" : "cultistdoor", > "//shortdescription" : "Cultist Door", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "cultistdoor", > "tilesetDirection" : "right" > }, 1841c1858,1859 < "object" : "flickeringfluorescentlight" --- > "object" : "flickeringfluorescentlight", > "tilesetDirection" : "right" 1849c1867,1868 < "object" : "flickeringfluorescentlight" --- > "object" : "flickeringfluorescentlight", > "tilesetDirection" : "right" 1857c1876,1877 < "object" : "flickeringfluorescentlight" --- > "object" : "flickeringfluorescentlight", > "tilesetDirection" : "right" 2995a3016,3018 > "279" : { > "image" : "../../../../../tiled/packed/objects/mechsign.png" > }, 2997a3021,3023 > }, > "280" : { > "image" : "../../../../../tiled/packed/objects/cultistdoor.png" tilesets\packed\objects-by-race\hylotl.json 7c7 < "tilecount" : 231, --- > "tilecount" : 232, 922c922 < "//shortdescription" : "Airlock Hatch", --- > "//shortdescription" : "Pressurised Airlock Hatch", 1267a1268,1275 > "231" : { > "//description" : "A halogen sign for the Letheia corporation.", > "//name" : "letheiasign", > "//shortdescription" : "Letheia Corp Sign", > "imagePositionX" : "-32", > "imagePositionY" : "-8", > "object" : "letheiasign" > }, 1577c1585 < "//shortdescription" : "Airlock Door", --- > "//shortdescription" : "Pressurised Airlock Door", 1607c1615,1616 < "object" : "numisign" --- > "object" : "numisign", > "tilesetDirection" : "right" 2431a2441,2443 > }, > "231" : { > "image" : "../../../../../tiled/packed/objects/letheiasign.png" tilesets\packed\objects-by-type\container.json 7c7 < "tilecount" : 272, --- > "tilecount" : 282, 1674a1675,1730 > "272" : { > "//name" : "industrialclasscrate", > "invalid" : "true" > }, > "273" : { > "//name" : "industrialclasscanister", > "invalid" : "true" > }, > "274" : { > "//name" : "industrialclassstoragelocker", > "invalid" : "true" > }, > "275" : { > "//description" : "A sealed metal canister, that might be used to store hazardous liquids.", > "//name" : "industrialcanister", > "//shortdescription" : "Industrial Canister", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "industrialcanister", > "tilesetDirection" : "right" > }, > "276" : { > "//description" : "A pressurised cargo crate, designed to withstand the harsh conditions of space travel.", > "//name" : "industrialcrate", > "//shortdescription" : "Industrial Crate", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "industrialcrate", > "tilesetDirection" : "right" > }, > "277" : { > "//description" : "A wall mounted locker, complete with hazard stripes and a red light.", > "//name" : "industrialstoragelocker", > "//shortdescription" : "Industrial Storage Locker", > "imagePositionX" : "-16", > "imagePositionY" : "-8", > "object" : "industrialstoragelocker" > }, > "278" : { > "//description" : "A shipping crate, designed to ship space goods.", > "//name" : "stationcrate", > "//shortdescription" : "Station Crate", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "stationcrate", > "tilesetDirection" : "right" > }, > "279" : { > "//description" : "A modern metal cabinet with floor mounting brackets.", > "//name" : "astrocabinet", > "//shortdescription" : "Astro Cabinet", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "astrocabinet", > "tilesetDirection" : "right" > }, 1683a1740,1756 > "280" : { > "//description" : "An astro panel storage locker.", > "//name" : "astrostoragelocker", > "//shortdescription" : "Astro Storage Locker", > "imagePositionX" : "-16", > "imagePositionY" : "-8", > "object" : "astrostoragelocker" > }, > "281" : { > "//description" : "A large container specialized for space transport.", > "//name" : "astrocrate", > "//shortdescription" : "Astro Crate", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "astrocrate", > "tilesetDirection" : "right" > }, 2901a2975,2998 > "272" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "273" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "274" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "275" : { > "image" : "../../../../../tiled/packed/objects/industrialcanister.png" > }, > "276" : { > "image" : "../../../../../tiled/packed/objects/industrialcrate.png" > }, > "277" : { > "image" : "../../../../../tiled/packed/objects/industrialstoragelocker.png" > }, > "278" : { > "image" : "../../../../../tiled/packed/objects/stationcrate.png" > }, > "279" : { > "image" : "../../../../../tiled/packed/objects/astrocabinet.png" > }, 2903a3001,3006 > }, > "280" : { > "image" : "../../../../../tiled/packed/objects/astrostoragelocker.png" > }, > "281" : { > "image" : "../../../../../tiled/packed/objects/astrocrate.png" tilesets\packed\objects-by-type\loungeable.json 7c7 < "tilecount" : 265, --- > "tilecount" : 278, 1627a1628,1667 > "265" : { > "//description" : "This colourful sleigh has a big rocket engine on the back! Who needs reindeer, right?", > "//name" : "scifisleigh", > "//shortdescription" : "Holiday Rocket Sleigh", > "imagePositionX" : "-64", > "imagePositionY" : "0", > "object" : "scifisleigh", > "tilesetDirection" : "right" > }, > "266" : { > "//name" : "industrialclasschair", > "invalid" : "true" > }, > "267" : { > "//description" : "A solid metal chair with only the slightest bit of padding.", > "//name" : "industrialchair", > "//shortdescription" : "Industrial Chair", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "industrialchair", > "tilesetDirection" : "right" > }, > "268" : { > "//description" : "A cheap bed with a sturdy metal frame. It doesn't seem very comfortable.", > "//name" : "industrialbed", > "//shortdescription" : "Industrial Bed", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "industrialbed", > "tilesetDirection" : "right" > }, > "269" : { > "//description" : "Equip and customise your personal mech!", > "//name" : "mechassemblystation", > "//shortdescription" : "Mech Assembly Station", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "mechassemblystation", > "tilesetDirection" : "right" > }, 1636a1677,1748 > "270" : { > "//description" : "A curved, formal looking metal chair.", > "//name" : "stationchair", > "//shortdescription" : "Station Chair", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "stationchair", > "tilesetDirection" : "right" > }, > "271" : { > "//description" : "A sleek metal bench.", > "//name" : "stationbench", > "//shortdescription" : "Station Bench", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "stationbench", > "tilesetDirection" : "right" > }, > "272" : { > "//description" : "A modern chair design, commonly found inside spaceships.", > "//name" : "astrochair", > "//shortdescription" : "Astro Chair", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "astrochair", > "tilesetDirection" : "right" > }, > "273" : { > "//description" : "A bed which is designed to perform medical scans.", > "//name" : "stationmedscanner", > "//shortdescription" : "Station Medical Scanner", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "stationmedscanner", > "tilesetDirection" : "right" > }, > "274" : { > "//description" : "A metal bar with with a smoothly polished surface.", > "//name" : "spacebarbottom", > "//shortdescription" : "Space Bar", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "spacebarbottom", > "tilesetDirection" : "right" > }, > "275" : { > "//description" : "A legendary testament to early space travel.", > "//name" : "lunarlander", > "//shortdescription" : "Lunar Lander", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "lunarlander", > "tilesetDirection" : "right" > }, > "276" : { > "//description" : "A scientific telescope, perfect for observing the stars.", > "//name" : "telescope", > "//shortdescription" : "Astronomy Telescope", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "telescope", > "tilesetDirection" : "right" > }, > "277" : { > "//description" : "A scientific telescope, perfect for observing the stars.", > "//name" : "telescope_orientation1", > "//shortdescription" : "Astronomy Telescope", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "telescope", > "tilesetDirection" : "right" > }, 2859a2972,2986 > "265" : { > "image" : "../../../../../tiled/packed/objects/scifisleigh.png" > }, > "266" : { > "image" : "../../../../../tiled/packed/../packed/invalid.png" > }, > "267" : { > "image" : "../../../../../tiled/packed/objects/industrialchair.png" > }, > "268" : { > "image" : "../../../../../tiled/packed/objects/industrialbed.png" > }, > "269" : { > "image" : "../../../../../tiled/packed/objects/mechassemblystation.png" > }, 2861a2989,3012 > }, > "270" : { > "image" : "../../../../../tiled/packed/objects/stationchair.png" > }, > "271" : { > "image" : "../../../../../tiled/packed/objects/stationbench.png" > }, > "272" : { > "image" : "../../../../../tiled/packed/objects/astrochair.png" > }, > "273" : { > "image" : "../../../../../tiled/packed/objects/stationmedscanner.png" > }, > "274" : { > "image" : "../../../../../tiled/packed/objects/spacebarbottom.png" > }, > "275" : { > "image" : "../../../../../tiled/packed/objects/lunarlander.png" > }, > "276" : { > "image" : "../../../../../tiled/packed/objects/telescope.png" > }, > "277" : { > "image" : "../../../../../tiled/packed/objects/telescope_orientation1.png" tilesets\packed\objects-by-type\physics.json 7c7 < "tilecount" : 10, --- > "tilecount" : 16, 26a27,80 > "10" : { > "//description" : "This energy field can contain both atmosphere and artificial gravity.", > "//name" : "dockingfieldsmall", > "//shortdescription" : "Docking Field (Small)", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "dockingfieldsmall", > "tilesetDirection" : "right" > }, > "11" : { > "//description" : "This energy field can contain both atmosphere and artificial gravity.", > "//name" : "dockingfieldsmall_orientation2", > "//shortdescription" : "Docking Field (Small)", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "dockingfieldsmall", > "tilesetDirection" : "right" > }, > "12" : { > "//description" : "This energy field can contain both atmosphere and artificial gravity.", > "//name" : "dockingfieldsmall_orientation3", > "//shortdescription" : "Docking Field (Small)", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "dockingfieldsmall", > "tilesetDirection" : "right" > }, > "13" : { > "//description" : "This energy field can contain both atmosphere and artificial gravity.", > "//name" : "dockingfield", > "//shortdescription" : "Docking Field", > "imagePositionX" : "-8", > "imagePositionY" : "0", > "object" : "dockingfield", > "tilesetDirection" : "right" > }, > "14" : { > "//description" : "This energy field can contain both atmosphere and artificial gravity.", > "//name" : "dockingfield_orientation2", > "//shortdescription" : "Docking Field", > "imagePositionX" : "-48", > "imagePositionY" : "0", > "object" : "dockingfield", > "tilesetDirection" : "right" > }, > "15" : { > "//description" : "This energy field can contain both atmosphere and artificial gravity.", > "//name" : "dockingfield_orientation3", > "//shortdescription" : "Docking Field", > "imagePositionX" : "-48", > "imagePositionY" : "0", > "object" : "dockingfield", > "tilesetDirection" : "right" > }, 105a160,177 > }, > "10" : { > "image" : "../../../../../tiled/packed/objects/dockingfieldsmall.png" > }, > "11" : { > "image" : "../../../../../tiled/packed/objects/dockingfieldsmall_orientation2.png" > }, > "12" : { > "image" : "../../../../../tiled/packed/objects/dockingfieldsmall_orientation3.png" > }, > "13" : { > "image" : "../../../../../tiled/packed/objects/dockingfield.png" > }, > "14" : { > "image" : "../../../../../tiled/packed/objects/dockingfield_orientation2.png" > }, > "15" : { > "image" : "../../../../../tiled/packed/objects/dockingfield_orientation3.png" tilesets\packed\objects-by-type\teleporter.json 7c7 < "tilecount" : 25, --- > "tilecount" : 26, 108c108 < "//description" : "The flag of the Protectorate. Use ^green;[E]^white; to bookmark a teleportation location.", --- > "//description" : "The human flag. Use ^green;[E]^white; to bookmark a teleportation location.", 121c121 < "//description" : "The flag of the Protectorate. Use ^green;[E]^white; to bookmark a teleportation location.", --- > "//description" : "The human flag. Use ^green;[E]^white; to bookmark a teleportation location.", 162a163,170 > "25" : { > "//description" : "A personal teleporter, connects to bookmarked locations.", > "//name" : "remoteteleporter", > "//shortdescription" : "Outpost Teleporter", > "imagePositionX" : "-32", > "imagePositionY" : "0", > "object" : "remoteteleporter" > }, 275a284,286 > }, > "25" : { > "image" : "../../../../../tiled/packed/objects/remoteteleporter.png" treasure\common.treasurepools 548,550c548 < {"weight" : 0.1, "item" : [ "copperore", 4]}, < {"weight" : 0.1, "item" : [ "silverore", 4]}, < {"weight" : 0.1, "item" : [ "goldore", 4]}, --- > {"weight" : 0.3, "pool" : "nonTieredOre"}, 557,559c555 < {"weight" : 0.1, "item" : [ "copperore", 4]}, < {"weight" : 0.1, "item" : [ "silverore", 4]}, < {"weight" : 0.1, "item" : [ "goldore", 4]}, --- > {"weight" : 0.3, "pool" : "nonTieredOre"}, 566,568c562 < {"weight" : 0.1, "item" : [ "copperore", 4]}, < {"weight" : 0.1, "item" : [ "silverore", 4]}, < {"weight" : 0.1, "item" : [ "goldore", 4]}, --- > {"weight" : 0.3, "pool" : "nonTieredOre"}, 576,578c570 < {"weight" : 0.1, "item" : [ "copperore", 4]}, < {"weight" : 0.1, "item" : [ "silverore", 4]}, < {"weight" : 0.1, "item" : [ "goldore", 4]}, --- > {"weight" : 0.3, "pool" : "nonTieredOre"}, 586,588c578 < {"weight" : 0.1, "item" : [ "copperore", 4]}, < {"weight" : 0.1, "item" : [ "silverore", 4]}, < {"weight" : 0.1, "item" : [ "goldore", 4]}, --- > {"weight" : 0.3, "pool" : "nonTieredOre"}, 598,600c588 < {"weight" : 0.1, "item" : [ "copperore", 4]}, < {"weight" : 0.1, "item" : [ "silverore", 4]}, < {"weight" : 0.1, "item" : [ "goldore", 4]}, --- > {"weight" : 0.3, "pool" : "nonTieredOre"}, 611,614c599,600 < {"weight" : 0.1, "item" : [ "copperore", 15]}, < {"weight" : 0.1, "item" : [ "silverore", 15]}, < {"weight" : 0.1, "item" : [ "goldore", 15]}, < {"weight" : 0.7, "item" : [ "ironore", 15]} --- > {"weight" : 0.3, "pool" : "nonTieredRichOre"}, > {"weight" : 0.7, "item" : [ "ironore", 16]} 620,623c606,607 < {"weight" : 0.1, "item" : [ "copperore", 15]}, < {"weight" : 0.1, "item" : [ "silverore", 15]}, < {"weight" : 0.1, "item" : [ "goldore", 15]}, < {"weight" : 0.7, "item" : [ "tungstenore", 15]} --- > {"weight" : 0.3, "pool" : "nonTieredRichOre"}, > {"weight" : 0.7, "item" : [ "tungstenore", 16]} 629,632c613,614 < {"weight" : 0.1, "item" : [ "copperore", 15]}, < {"weight" : 0.1, "item" : [ "silverore", 15]}, < {"weight" : 0.1, "item" : [ "goldore", 15]}, < {"weight" : 0.65, "item" : [ "titaniumore", 15]}, --- > {"weight" : 0.3, "pool" : "nonTieredRichOre"}, > {"weight" : 0.65, "item" : [ "titaniumore", 16]}, 639,642c621,622 < {"weight" : 0.1, "item" : [ "copperore", 15]}, < {"weight" : 0.1, "item" : [ "silverore", 15]}, < {"weight" : 0.1, "item" : [ "goldore", 15]}, < {"weight" : 0.65, "item" : [ "durasteelore", 15]}, --- > {"weight" : 0.3, "pool" : "nonTieredRichOre"}, > {"weight" : 0.65, "item" : [ "durasteelore", 16]}, 649,654c629,632 < {"weight" : 0.1, "item" : [ "copperore", 15]}, < {"weight" : 0.1, "item" : [ "silverore", 15]}, < {"weight" : 0.1, "item" : [ "goldore", 15]}, < {"weight" : 0.2, "item" : [ "violiumore", 15]}, < {"weight" : 0.2, "item" : [ "aegisaltore", 15]}, < {"weight" : 0.2, "item" : [ "feroziumore", 15]}, --- > {"weight" : 0.3, "pool" : "nonTieredRichOre"}, > {"weight" : 0.2, "item" : [ "violiumore", 16]}, > {"weight" : 0.2, "item" : [ "aegisaltore", 16]}, > {"weight" : 0.2, "item" : [ "feroziumore", 16]}, 661,664c639,640 < {"weight" : 0.1, "item" : [ "copperore", 15]}, < {"weight" : 0.1, "item" : [ "silverore", 15]}, < {"weight" : 0.1, "item" : [ "goldore", 15]}, < {"weight" : 0.6, "item" : [ "solariumore", 15]}, --- > {"weight" : 0.3, "pool" : "nonTieredRichOre"}, > {"weight" : 0.6, "item" : [ "solariumore", 16]}, 669a646,665 > "nonTieredOre" : [ > [0, { > "pool" : [ > {"weight" : 0.1, "item" : [ "copperore", 4]}, > {"weight" : 0.1, "item" : [ "silverore", 4]}, > {"weight" : 0.1, "item" : [ "goldore", 4]} > ] > }] > ], > > "nonTieredRichOre" : [ > [0, { > "pool" : [ > {"weight" : 0.1, "item" : [ "copperore", 16]}, > {"weight" : 0.1, "item" : [ "silverore", 16]}, > {"weight" : 0.1, "item" : [ "goldore", 16]} > ] > }] > ], > 1720,1721d1715 < < treasure\hunting.treasurepools 376a377,386 > "paraspriteHunting" : [ > [1, { > "pool" : [ > {"weight" : 0.997, "item" : "sharpenedclaw"}, > {"weight" : 0.003, "item" : "paraspriteaf"} > ], > "allowDuplication" : false > } ] > ], > treasure\microdungeons.treasurepools 616a617,634 > ], > > "bookTreasure" : [ > [0, { > "pool" : [ > {"weight" : 0.2, "item" : [ "bookpiles", 5]}, > {"weight" : 0.2, "item" : [ "bookpiles", 4]}, > {"weight" : 0.2, "item" : [ "bookpiles", 3]}, > {"weight" : 0.2, "item" : [ "bookpiles", 2]}, > {"weight" : 0.2, "item" : [ "bookpiles", 1]} > ], > "poolRounds" : [ > [0.4, 2], > [0.2, 3], > [0.2, 4] > ], > "allowDuplication" : true > }] treasure\monster.treasurepools 332c332 < --- > 599a600,614 > "paraspriteTreasure" : [ > [1, { > "pool" : [ > {"weight" : 0.799, "pool" : "basicMonsterTreasure"}, > {"weight" : 0.200, "item" : "sharpenedclaw"}, > {"weight" : 0.001, "item" : "paraspriteaf"} > ], > "poolRounds" : [ > [0.20, 0], > [0.80, 1] > ], > "allowDuplication" : false > }] > ], > 1913c1928 < "fill" : [ --- > "fill" : [ 1928c1943 < "fill" : [ --- > "fill" : [ 2030c2045 < --- > 2112,2121d2126 < }] < ], < < // ================================ < // Outdated < // ================================ < < "boss4Treasure" : [ < [1, { < "fill" : [ {"item" : [ "endomorphicjelly", 5]}, {"item" : "bossjelly-codex"}] treasure\Missions\miningtreasure1.treasurepools 22,25c22 < {"weight" : 0.02, "item" : "lunarbaselocker-recipe" }, < {"weight" : 0.02, "item" : "miningdoor-recipe" }, < {"weight" : 0.02, "item" : "miningverticaldoor-recipe" }, < {"weight" : 0.02, "item" : "miningchest-recipe" } --- > {"weight" : 0.02, "item" : "lunarbaselocker-recipe" } vehicles\ballista\ballista.lua 13d12 < self.worldBottomDeathLevel = 5 25c24 < if mcontroller.position()[2] < self.worldBottomDeathLevel then --- > if mcontroller.atWorldLimit() then vehicles\boat\boat.lua 5d4 < self.specialLast = false 13,14d11 < self.worldBottomDeathLevel = 5 < 89c86 < if mcontroller.position()[2] < self.worldBottomDeathLevel then --- > if mcontroller.atWorldLimit() then vehicles\boat\boat.vehicle 36c36,37 < "exitBottomOffset" : [0, -0.5] --- > "exitBottomOffset" : [0, -0.5], > "cameraFocus" : true 44c45,46 < "exitBottomOffset" : [0, -0.5] --- > "exitBottomOffset" : [0, -0.5], > "cameraFocus" : true 99a102 > "collisionKind" : "platform", vehicles\car\jeep.lua 79,80d78 < self.worldBottomDeathLevel = 5 < 129c127 < if mcontroller.position()[2] < self.worldBottomDeathLevel then --- > if mcontroller.atWorldLimit() then vehicles\hoverbike\hoverbike.lua 78,79d77 < self.worldBottomDeathLevel = 5 < 128c126 < if mcontroller.position()[2] < self.worldBottomDeathLevel then --- > if mcontroller.atWorldLimit() then vehicles\hoverbike\hoverbikegreen.vehicle 51c51,52 < "dance" : "warmhands" --- > "dance" : "warmhands", > "cameraFocus" : true 59c60,61 < "dance" : "typing" --- > "dance" : "typing", > "cameraFocus" : true 64c66 < --- > vehicles\hoverbike\hoverbikekhaki.vehicle 46c46,47 < "dance" : "warmhands" --- > "dance" : "warmhands", > "cameraFocus" : true 54c55,56 < "dance" : "typing" --- > "dance" : "typing", > "cameraFocus" : true 168c170 < } \ No newline at end of file --- > } vehicles\hoverbike\hoverbikered.vehicle 50c50,51 < "dance" : "warmhands" --- > "dance" : "warmhands", > "cameraFocus" : true 58c59,60 < "dance" : "typing" --- > "dance" : "typing", > "cameraFocus" : true vehicles\mech\mech.animation 45c45 < "immediateSound" : "/sfx/gun/mech_gun2.ogg" --- > "immediateSound" : "/sfx/gun/mech_gatling2.ogg" 63c63 < "immediateSound" : "/sfx/gun/mech_gun2.ogg" --- > "immediateSound" : "/sfx/gun/mech_gatling2.ogg" vehicles\mech\mech.lua 4d3 < self.specialLast = false 10d8 < self.worldBottomDeathLevel = 5 14c12 < if mcontroller.position()[2] < self.worldBottomDeathLevel then --- > if mcontroller.atWorldLimit() then vehicles\mech\glitchmech\glitchmech.animation 45c45 < "immediateSound" : "/sfx/gun/mech_gun2.ogg" --- > "immediateSound" : "/sfx/gun/mech_gatling2.ogg" 63c63 < "immediateSound" : "/sfx/gun/mech_gun2.ogg" --- > "immediateSound" : "/sfx/gun/mech_gatling2.ogg" vehicles\railplatform\compositerailplatform.animation 5c5 < "default" : "onRail", --- > "default" : "off", 7c7,13 < "onRail" : { --- > "off" : { > "properties" : { > "immediateSound" : "/sfx/objects/steel_elevator_hit.ogg", > "immediateSoundRangeMultiplier" : 0.5 > } > }, > "on" : { 10c16,20 < "mode" : "loop" --- > "mode" : "loop", > "properties" : { > "persistentSound" : "/sfx/tech/composite_platform_loop.ogg", > "persistentSoundRangeMultiplier" : 0.5 > } 27c37 < "onRail" : { --- > "on" : { 30a41,45 > }, > "off" : { > "properties" : { > "image" : ":offRail" > } 44c59 < "onRail" : { --- > "on" : { 46a62,66 > } > }, > "off" : { > "properties" : { > "image" : ":offRail" vehicles\railplatform\compositerailplatform.frames 9c9,10 < "default" : "onRail.1" --- > "default" : "onRail.1", > "offRail" : "onRail.4" vehicles\railplatform\compositerailplatform.vehicle 25c25,26 < "ignorePlatformCollision" : true --- > "ignorePlatformCollision" : true, > "physicsEffectCategories" : [] 32a34 > "collisionKind" : "platform", vehicles\railplatform\compositerailplatformfullbright.frames 9c9,10 < "default" : "onRail.1" --- > "default" : "onRail.1", > "offRail" : "onRail.4" vehicles\railplatform\railplatform.lua 6,7d5 < self.worldBottomDeathLevel = 5 < 23c21 < if mcontroller.position()[2] < self.worldBottomDeathLevel then --- > if mcontroller.atWorldLimit() then 33a32,37 > end > > if self.railRider.onRailType and self.railRider.moving then > animator.setAnimationState("rail", "on") > else > animator.setAnimationState("rail", "off") vehicles\railplatform\rustyrailplatform.animation 5c5 < "default" : "onRail", --- > "default" : "off", 7c7,13 < "onRail" : { --- > "off" : { > "properties" : { > "immediateSound" : "/sfx/objects/steel_elevator_hit.ogg", > "immediateSoundRangeMultiplier" : 0.5 > } > }, > "on" : { 10c16,20 < "mode" : "loop" --- > "mode" : "loop", > "properties" : { > "persistentSound" : "/sfx/objects/sewergear.ogg", > "persistentSoundRangeMultiplier" : 0.5 > } 26c36 < "onRail" : { --- > "on" : { 28a39,43 > } > }, > "off" : { > "properties" : { > "image" : ":offRail" vehicles\railplatform\rustyrailplatform.frames 9c9,10 < "default" : "onRail.1" --- > "default" : "onRail.1", > "offRail" : "onRail.4" vehicles\railplatform\rustyrailplatform.vehicle 22c22,23 < "ignorePlatformCollision" : true --- > "ignorePlatformCollision" : true, > "physicsEffectCategories" : [] 29a31 > "collisionKind" : "platform", weather\duststorm\duststorm.weather 5c5 < { --- > { 8d7 < 22c21 < }, --- > }, 39d37 < 51c49 < { --- > { 54,55c52,54 < "type" : "textured", < "image" : "/particles/darksand/1.png", --- > "type" : "ember", > "color" : [96, 89, 131], > "size" : 1.0, 57d55 < "angularVelocity" : 180, 59,60d56 < "destructionAction" : "shrink", < "destructionTime" : 0.5, weather\sandstorm\sandstorm.weather 27,28c27,29 < "type" : "textured", < "image" : "/particles/sand/1.png", --- > "type" : "ember", > "color" : [253, 198, 137], > "size" : 1.0, 30d30 < "angularVelocity" : 180, 32,33c32,33 < "destructionAction" : "shrink", < "destructionTime" : 0.5, --- > "destructionAction" : "shrink", > "destructionTime" : 0.5, 42,43c42,44 < "type" : "textured", < "image" : "/particles/sand/2.png", --- > "type" : "ember", > "color" : [198, 156, 109], > "size" : 1.0, 45d45 < "angularVelocity" : 180, 57,58c57,59 < "type" : "textured", < "image" : "/particles/sand/3.png", --- > "type" : "ember", > "color" : [199, 178, 154], > "size" : 1.0, 60d60 < "angularVelocity" : 180, weather\snow\icestorm.weather 8,9c8,10 < "type" : "textured", < "image" : "/particles/snow/1.png", --- > "type" : "ember", > "color" : [212, 219, 247], > "size" : 1.0, 11d11 < "angularVelocity" : 180, 21,22c21,23 < "type" : "textured", < "image" : "/particles/snow/2.png", --- > "type" : "ember", > "color" : [239, 242, 254], > "size" : 1.0, 24d24 < "angularVelocity" : 180, 34,35c34,36 < "type" : "textured", < "image" : "/particles/snow/3.png", --- > "type" : "ember", > "color" : [246, 250, 250], > "size" : 1.0, 37d37 < "angularVelocity" : 180, weather\snow\snow.weather 8,9c8,10 < "type" : "textured", < "image" : "/particles/snow/1.png", --- > "type" : "ember", > "color" : [212, 219, 247], > "size" : 1.0, 21,22c22,24 < "type" : "textured", < "image" : "/particles/snow/2.png", --- > "type" : "ember", > "color" : [239, 242, 254], > "size" : 1.0, 34,35c36,38 < "type" : "textured", < "image" : "/particles/snow/3.png", --- > "type" : "ember", > "color" : [246, 250, 250], > "size" : 1.0, 37d39 < "angularVelocity" : 180, weather\snowstorm\snowstorm.weather 25,26c25,27 < "type" : "textured", < "image" : "/particles/snow/1.png", --- > "type" : "ember", > "color" : [212, 219, 247], > "size" : 1.0, 28d28 < "angularVelocity" : 180, 38,39c38,40 < "type" : "textured", < "image" : "/particles/snow/2.png", --- > "type" : "ember", > "color" : [239, 242, 254], > "size" : 1.0, 41d41 < "angularVelocity" : 180, 51,52c51,53 < "type" : "textured", < "image" : "/particles/snow/3.png", --- > "type" : "ember", > "color" : [246, 250, 250], > "size" : 1.0, 54d54 < "angularVelocity" : 180,