Skip to content

Releases: Taureon/aps-plus-plus

v1.0.0-beta.8

23 Sep 15:39
Compare
Choose a tag to compare
v1.0.0-beta.8 Pre-release
Pre-release

Additions

  • Added color support for drawText().

    • You can add color tags to text that gets rendered.
    • A color tag consists of a section sign (§) at each end, with a "color value" in the middle.
    • You can have a color tag with nothing in it (§§) and it will render the section sign normally.
    • A color tag does not get rendered and makes text after it have a specific color.
    • A valid color value can either be a "color code", exactly like the ones you see in definitions COLOR: 3.
    • It can also be a CSS Color Value.
    • And if you want it to reset to the "default color", then you can set it to reset.
    • Example which makes "World" the animated trans color: Hello §37§World§reset§!
    • Example which makes "Gradient" in the gradient colors from red to yellow: §#ff0000§G§#ff2000§r§#ff4000§a§#ff6000§d§#ff8000§i§#ff9f00§e§#ffbf00§n§#ffdf00§t
    • NOTE: As a side effect of this feature, rendered text may be moved by SOME PIXELS in slightly different spots, but it should hardly be noticable.
    • Gradient support could be added as soon as it is figured out how to represent them in text.
  • Added a simple status effect system.

    • Added StatusEffect as a globally accessible class.
    • Arguments: duration (number, required), effects (object, optional), tick (function, optional)
    • duration: effect duration where 30 equals 1 second.
    • multipliers: key-number object with the following (optional) attributes: acceleration, topSpeed, health, shield, regen, damage, penetration, range, fov, density, stealth, pushability, size.
    • tick: function with the entity the effect is on as the argument.
    • StatusEffects should be set with Entity.addStatusEffect(StatusEffect).
    • If an entity gets a new status effect, the newStatusEffect event is emitted with the StatusEffect in the callback as the argument.
    • If a status effect expires, the expiredStatusEffect event is emitted with the StatusEffect in the callback as the argument.
    • multipliers multiplies the body attributes by their number. (example: { fov: 2 } doubles your fov)
    • tick runs once a game tick if the entity is activated.
    • Multiple StatusEffects can stack seamlessly.
    • For an example of an addon that uses StatusEffects, check out the Effect Roller Addon.
  • Added ON_FIRE gun attribute, which runs the given function when the gun fires.

    • Function argument: An object with these attributes: body, gun, masterStore, gunStore
    • body is the entity that the gun belongs to. (If the gun is on a turret, it picks the turret's master instead)
    • gun is the gun itself.
    • masterStore is a storage object that persists between ON_FIRE function calls.
    • gunStore is a storage object like masterStore, but it belongs to the gun instead of the master.
    • For an example implementation, check out "Switcheroo" in the Fun menu.
  • Added LEVEL_CAP entity attribute, which overwrites c.LEVEL_CAP specifically for that entity.

  • Added REPL_WINDOW to config.js.

    • false by default, if set to true, allows you to type js code in your terminal window and execute it.

Fixes

  • Guns now have an unique id, like Entitys.

  • Fixed an object reference bug related to Gun.settings.

  • Fixed io_wanderAroundMap's lookAtGoal setting to actually look at the goal instead of staring at the bottom right.

  • Fixed switching to Developer class resetting your score/level.

    • RESET_UPGRADES now only resets your stat upgrades, returning your points.
    • RESET_UPGRADES happens when you press the dev key.
    • RESET_UPGRADES is not on "Developer" anymore.
  • Fixed the issue with io_nearestDifferentMaster and dominators.

v1.0.0-beta.7

17 Sep 14:31
Compare
Choose a tag to compare
v1.0.0-beta.7 Pre-release
Pre-release

Additions

  • Added "Weirdly defined Auto-Basic" to the "Fun" menu to show off the new features shown below.
  • Added Assembler.

Changes

  • Updated combineStats facilitator function to be backwards compatible for "stat arrays".
  • Updated POSITION for turret and gun definitions.
    • Can now be objects with properties instead of arrays of numbers.
    • For guns, the properties are LENGTH, WIDTH, ASPECT, X, Y, ANGLE and DELAY.
    • For turrets, the properties are SIZE, X, Y, ANGLE, ARC and LAYER.
    • If a property of the object is not defined, it will assume a default value.
    • The default values consist of the standard Basic's barrel, if defined as a barrel's POSITION.
    • The default values consist of the standard auto turret with LAYER and ANGLE set to 0, if defined as a turret's POSITION.
    • Using objects for POSITION is optional, so you don't have to rewrite your thousands of lines of tank code.
  • Updated shinySentry definition to be a triangle instead of a circle.

v1.0.0-beta.6

16 Sep 22:24
Compare
Choose a tag to compare
v1.0.0-beta.6 Pre-release
Pre-release

Additions

  • Added BOT_XP config setting, which determines how much xp the player-bots get each second.
    • 125 by default.
  • Added a 3rd page to the Food Generators.
    • Features a 3 dimensional list of labyrinth food.
  • Added SPAWN_CLASS config setting, which determines the class that player(-bot)s spawn as.
    • "basic" by default.
  • Added RECOIL_MULTIPLIER as a BODY attribute, which multiplies the knockback that guns and turrets give by that amount.
  • Added STACK_GUN gun property, which makes io_stackGuns ignore the gun if it is set to false.
    • true by default.
  • Added "Developers" category to "Bosses" menu.
    • Currently only has Taureon and TGS.
    • Functions more like a credits page.
  • Added a Dreadnoughts V1 example addon.
    • Serves as an example "content pack" that addons can add.

Changes

  • Updated Domination gamemode.
    • Works with FFA now.
  • Updated Siege gamemode.
    • Added all celestials and terrestrials as enemies.
    • Added the rogue celestials as friendly boss choices.
    • Friendly bosses are no longer blue now.
  • Updated the example addon.
    • Changed body stats, added extra skill on upgrade, make it not crash your game because now it doesn't reference the now deleted Class.memes instead of Class.fun.
  • Updated Definitions.
    • Updated COLOR: If your string color does not return a color, it will think your input is #RRGGBB.
    • Updated PARENT: You don't need it to be an array anymore, you can now just do PARENT: "genericTank".
    • This means getColor in the client no longer returns #00000000 for invalid colors.
  • Updated Conqueror's Pounder barrel to be a Destroyer barrel.
  • Renamed the "Boss" team and "Arena Closer" team in the team picker to "Enemies" team and "Room" team to better reflect their teams' names in the code.
  • Removed BOTS definitions from the default gamemode configs to avoid confusion.

Fixes

  • Fixed "chat on death" crash.

v1.0.0-beta.5

09 Sep 21:48
dff8716
Compare
Choose a tag to compare
v1.0.0-beta.5 Pre-release
Pre-release
  • Reworked Food Generators.

    • Generator definitions are now algorithmicly generated.
    • Features 46 food types, 42 gemmed relics and 3 enemies instead of just 4 things.
    • Traversable food matrices like in arras.io's shiny menu, except its easier to understand where you're going.
    • Bottom right upgrade swaps between not-gem-relic and gem-relic matrices.
  • Added Trans Food Group.

    • Can (albeit very unlikely) naturally spawn.
  • Added Relics.

    • Features empty relics aswell as gemmed relics.
  • Added Tesseract.

    • Ultimate Extradimensional Food, it goes even beyond the platonic solids...
    • Added so there is a thing in the relic row and the extradimensional column.
  • Added INDEPENDENT_CHILDREN gun attribute.

    • Spawns TYPE as an independent entity instead of a projectle.
  • Made the skill menu go back all the way even if one of the max stat caps is 255.

  • Resolved the Constructor tank name conflict.

  • Fixed an issue with the default token values trying to make you a tank that doesn't exist, and crashing the server.

v1.0.0-beta.4

09 Sep 09:51
Compare
Choose a tag to compare
v1.0.0-beta.4 Pre-release
Pre-release
  • Added the ability to communicate in game.

    • Enter to type and send a message.
    • When messages vanish can be set in config.js with CHAT_MESSAGE_DURATION, defaults to 30000 milliseconds (30 seconds).
    • Comes with a basic moderation addon.
    • The basic moderation addon adds:
      • A simple rate limit if you send chat messages too quickly,
      • A character limit,
      • And bad words prevention
    • The character limit can be modified in index.html and config.js and you can toggle swearing in config
    • It lets you spam if you have allowSpam in your permissions.
    • It lets you swear if you have allowBadWords in your permissions.
  • Added Events attribute to the Addon Argument Object.

    • Includes 2 events: spawn, chatMessage
    • spawn event fires when an entity of any kind spawns.
    • spawn's callback argument is the entity that spawned.
    • chatMessage event fires when a chat message is received from the client.
    • chatMessage's callback argument is an object which looks like this: { message, socket, preventDefault }.
    • message is the text message that is sent.
    • socket is the socket object (which contains socket.player and that contains player.body which is the player entity).
    • preventDefault is a function that if called, prevents the message from being sent out to everyone.
  • server/config.js has been documented and commented.

    • Settings that do NOTHING have been removed.
    • Each setting has been commented.
  • Added io_stackGuns controller.

    • Rotates itself to make the gun that is about to fire aim at target.
    • Has a timeUntilFire option, which determines how close a gun has to be to firing before the tank spins for it.
    • If it is 0, which it is by default, it doesn't do that check.
  • Updated Siege.

    • Added Elite Trap Guard, Elite Spinner, Nest Warden, Nest Guardian and Kronos.
    • Fixed a very specific wave generation crash edge case.
  • Fixed YET ANOTHER bug in domination.js.

    • Dominators turn to TEAM_ROOM if not killed by a player.
    • Fixes arena closers crashing the server.
  • Cleaned up some code.

    • General smaller code changes.
    • Made canvas.js's this reference less confusing.

v1.0.0-beta.3

05 Sep 20:18
Compare
Choose a tag to compare
v1.0.0-beta.3 Pre-release
Pre-release
  • Added TURRET_FACES_CLIENT

    • Forces your entity to face the cursor without delay, Use when using turrets, like TYPE: ["dreadnoughtLayer2", {TURRET_FACES_CLIENT: true}
  • Added support for using strings in the COLOR: property

    • example: COLOR: 'teal'
  • Added infiniteLevelUp permission to permissions.js.

    • Bypasses SKILL_CHEAT_CAP.
  • Added a Window Title.

    • APS++ Game Server Instance by default, can be changed in config as WINDOW_TITLE.
  • Added Config attribute to the Addon functon argument object.

    • Allows you to change the server configuration if need be.
  • Added getWeakestTeam, getTeamName, getTeamColor and isPlayerTeam as global functions that you can reference in the server.

    • getWeakestTeam gets the team with the least amount of bots/players.
    • getTeamName gets a team id and turns that into a team name. (-1 => "BLUE")
    • getTeamColor same thing but for color ids.
    • isPlayerTeam returns true if the id is below 0 and above -9, which corresponds to the allocated team ids for all 8 teams.
  • Added TEAM_BLUE, TEAM_GREEN, TEAM_RED and so on for all the teams which are intended to have more than 1 entity in them.

    • Gets rid of magic numbers, makes code easier to understand.
    • Also breaks the confusion between -100 and -101 which were used interchangibly in multiple places.
    • TEAM_ROOM has been added for rocks, roids, walls, ACs and the moon.
    • TEAM_ENEMIES has been added for food, crashers, sentries, bosses, etc.
    • All 8 player teams are added.
  • Added auras.

    • 2 aura related debug tanks in the Memes category.
    • Uses a modified version of @DogeisCut's auras.
    • Comes with a new facilitator function: addAura
    • Comes with a new movement type: withMaster
  • Added BORDERLESS attribute which removes shape or gun borders.

    • Can be applied to both guns and entities.
  • Added DRAW_FILL attribute which fills a shape or gun when drawn.

    • true by default.
  • Added DRAW_ABOVE which makes a gun appear above the player but below top turrets.

  • Added LEVEL_SKILL_POINT_FUNCTION.

    • Makes the entity use a custom LSPF then the one in the configuration file.
  • Added RECALC_SKILL.

    • Sets the spent and usable skill to zero.
    • The goes from 0 to current level and calculates how many points it would have gotten.
    • Pairs well with LEVEL_SKILL_POINT_FUNCTION.
  • Added EXTRA_SKILL.

    • Adds extra skill points to spend.
    • Runs after the above two new attributes.
  • Added the option for ALPHA attribute to be a dual number array like INVISIBLE.

    • First number defines the maximum alpha (max visibility).
    • Second number defines the minimum alpha (min visibility).
    • Also fixed the invisibility updating on the server to not have an alcoholism problem anymore.
  • Added run.sh in the same directory as run.bat.

    • For the Linux Master Race™.
    • Also works on macOS.
  • Added package-lock.json to .gitignore.

  • Set Error.stackTraceLimit to Infinity.

    • Error logs now show more of where the error came from.
  • Fixed DESTROY_OLDEST_CHILD rapid firing after hitting the max children limit.

  • Fixed base protectors.

    • Required a better turret reload patch.
    • Side effect is that stacking turrets now does not make them shoot faster anymore.
  • Completed the new definitions system.

    • Added flattenDefintions to the config.
    • Appends an entity's PARENT properties (the properties of the referenced tanks) to the entity.
    • Also does reference checking, which can help with spelling mistakes and missing definitions.
    • Facilitator combineStats accepts objects instead of number arrays.
    • gValues have been updated to compensate.
    • You can now do simpler things like combineStats([g.drone, g.summoner, { size: 0.8 }]).
    • Includes a new way to reference other entities' definitions!
    • String Definition References can now be used instead of getting an attribute of exports.
    • PARENT: ["genericTank"], TYPE: "autoSmasherTurret", TYPE: ["sunchip", { LABEL: "Square" }]
    • You can still reference as an exports property instead for backwards compatability.
    • ⚠️ Facilitator functions don't work with string references.
    • ⚠️ Old definitions.js file has been deprecated, but can still be accessed in 'live\class.js'.
  • Updated webServer.js.

    • Added a check for if you're using localhost as the "host" config property.
    • If you are, it checks if you added a port and if that port equals the "port" config property.
    • It warns in server console if the check fails.
    • Added 2 mime types it checks for: image/png, image/x-icon.
    • Now does not send redundant information anymore.
  • Updated how in-game changelogs work.

    • Instead of a .md file, it is a .html file.
  • Updated gamemodes.

    • Siege: Now roughly tries to balance out the times specific bosses spawn, so it won't think that a sorcerer equals a nest keeper in strength.
    • Manhunt: Shows leader on minimap. As a requirement to make this change possible, the alwaysShowOnMinimap property has been added to the Entity prototype.
    • Growth: Expanded leveling limit + You can now get max upgraded auto smasher!
    • Domination: Fixed the mountain of glitches, bugs and crashes that it has.
  • Updates the Skill Upgrade UI.

    • Now does not keep open anymore if you are unable to spend more skil points.
    • Added more spacing between the vertical dividers.
    • made the "blocked off area" with the number on it be a consistent size.
  • Moved the contents of the bringToLife() function to the Entity.life() method, which was the only place bringToLife() was called.

  • Renamed skill cap related configs to level caps.

  • Replaced instances of Array.forEach() and loopThrough with their for loop equivalent.

  • Removed bleeding from the skill system.

    • It did NOTHING.
  • Removed dead/commented out code in several places.

  • Removed redundant global functions.

    • rotatePoint it was used once and only on commented out code.
    • isEven i don't have to explain this one.
    • loopThrough for loops... they exist...
    • getTeam it was not clear what it does.
  • Removed server\modules\debug\antibot.js because it is stupid.

  • Removed secondaryGameMode from configurations.

  • Many minor less relevant improvements in a lot of places.

  • Added support for hsl adjustment of base colors, example in exports.basic

  • Added color mirroring for barrels and turrets

    • Copies the tank’s base color
    • Allows for modifications per instance of the color
    • Works for nested turrets
    • Set COLOR or COLOR.BASE to -1 to activate
  • The color of a projectile can now be set in the gun’s PROPERTIES, not just in the projectile export itself

v1.0.0-beta.2

20 Aug 15:39
Compare
Choose a tag to compare
v1.0.0-beta.2 Pre-release
Pre-release
  • Added a very primitive "Addon API" that gives more extensive control of the definitions.
    • Made a new folder: definitions/addons.
    • Addons are .js files, that export a function, which takes an object with a property called Class as the argument, which contains all the definitions after merging the groups.
    • Comes an example addon that is disabled by default in the code if you had difficulty understanding the above line.
    • The addon api will probably come with more features later on.
  • Added rock, stone, moon, gravel and wall to misc.js.
    • I wonder which classes are still missing from the groups.
  • Turret stats now sync properly with their tank they're on.
    • How @frostbvte even managed to find that fix I have no clue.
  • Changed the tab icon and the center image to this server's icon as a locally stored .png and .ico instead of files on the arras.io webserver.
  • Deprecated Taureon's Arras.io Server.
    • Added 3 lines to the spawn message of the game server that tells you to visit the aps++ repository instead.
    • Added a link to the webpage that redirects to the repository.
    • Commented out the <script> tag that automatically redirects you to the arras.cx client.
    • The optimisations in the server are already included in aps++.
    • The exclusive content will be an aps++ addon.

Note from Taureon: I do not want aps++ instances to depend on 3rd party servers to function. Eventually, I will attempt to untie the client from Google Fonts too while keeping the Ubuntu font. I want aps++ to run without errors, even if the internet only contains aps++ players and instances. It is more difficult to test, secure and archive your product if it relies on something that you realistically do not have any control over, and you can easily get shut down or denied access if they wanted to, at any moment.

v1.0.0-beta.1

19 Aug 10:45
Compare
Choose a tag to compare
v1.0.0-beta.1 Pre-release
Pre-release

I've started putting Taureon's changelogs up here. For earlier updates, join the Discord.
Since this push of 15 updates was accidental, it may not be entirely polished.

  • Added Sphere, Tetrahedron and Octahedron as Extradimensional Food.
    • Not in definitions.js but in modules/definitions/groups/food.js
  • Added Vulture
    • Upgrades from Tri-Angle branch.
  • Added small grouping guide to definitions.txt.
  • Added groundwork for "definitions flattening".
    • "Flattening" refers to removing PARENT attributes and applying the parents' attributes to the definition themselves, if it's not overwritten later on.
    • You can toggle it in config, if your code depends on PARENTs for some reason.
    • Should improve performance by getting rid of redundant attribute settings.
  • Made config.js easier to read.
  • Fixed a bug that makes turrets shoot twice as fast.
    • Credits to @frostbvte on Discord for finding this one!
    • Updated g.auto's reload to be double too.
  • Fixed a stat visual bug.
  • Made the advanced collision function easier to read.
  • Removed the custom Ironclad boss.
  • Finished the definitions flattening feature from last changelog.
    • Also added error handling for people who attempt to get a definition that does not exist.