Skip to content

v1.8.0

Choose a tag to compare

@tweenko tweenko released this 14 Jan 17:36
· 291 commits to main since this release
16f137d

What's new since v1.7.1?

IDE version: v2024.14.2.256

This update brings a rewrite of the whole encounter system, so porting things over MAY be a bit of a hassle. If you want to update an existing project, make sure to back it up so you have an ability to reverse the changes. Be careful.

encounter changes:

  • !! full o_enc rewrite !!
    what came with the rewrite:
  • better syntax, now can compare with other things written for the engine
  • a lot more customizability, especially when we’re talking about custom menus/buttons/actions
  • better consistency throughout the whole engine
  • tp bar origin point changed to middle center in spr_ui_enc_tpbar
  • moved tp bar to a separate object with controllable x and y position
  • added support for tp bar displaying the amount of tp that will be deducted upon casting a spell or an act
  • encounter rewrite supports rearranging, adding and removing buttons in the ui
  • added new constructor enc_action responsible for actions in encounters (e.g. fight, act, spell)
  • added new constructor enc_button responsible for buttons in encounters (e.g. spare, item)
  • added a new variable for the enc_set constructor called party_actions, which works like the bonus_actions variable in o_enc used to work.
  • removed support for adding passing arguments into acts because that was useless. if you ever used that… i’m deeply sorry…
  • sprites are now no longer automatically reset after an act is finished. not a technical limitation, but a way of opening up your possibilities in terms of what can be an act; however, if your actor is using their act sprite, their sprite will change into “actend” and soon go back to “idle”. tldr; set the sprites back to idle for the actors you’ve tampered with during the act sequence
  • it’s now possible to have two-page act and spell pages
  • win_condition from o_enc is now inside the enc_set constructor. works the same way
  • after fixing a bug related to o_enc_box, you now must set your box’s sprite_back variable to the back wall of the encounter box. the sprite used must be 2x

enemy changes:

  • enemies now have new methods: __defeat - fully internal. marks the enemy as defeated and adds carrying money to the blind __run_defeat - called when the enemy should run away __fatal_defeat - called when the enemy is dealt a fatal blow __freeze_defeat - called when the enemy is frozen
  • split enemy constructor’s dia_bubble_offset variable into three separate ones instead of an array - dia_bubble_off_x, dia_bubble_off_y, dia_bubble_off_type - for better clarity
  • new enumerator BUBBLE_RELATIVE, contains values BUBBLE_RELATIVE.TO_DEFAULT_POS and BUBBLE_RELATIVE.TO_ACTOR_BASE. made to avoid magic numbers in actor dialogue bubble creation
  • argument 2 of the act exec variable now receives the party member’s name instead of their index
  • new encounter script enc_enemy_set_tired that makes the enemy tired/not tired
  • sparing enemies now grants you spare percentage if they can be spared. the amount is specified in mercy_add_pity_percent of the enemy struct. if set to 0, none is added.

item changes:

  • all spells’ use arguments now expect the spell caster’s name instead of their index
  • renamed some argument names in default items to better reflect their purpose
  • all items’ use arguments now expect a target’s index instead of their name to allow items being used against enemies

text_typer changes:

  • maxw and maxh are renamed to width and height respectively.
  • you can now set the maximum width of a text_typer using a new variable - max_width

misc changes:

  • added carrying money to example enemies
  • actors now have a new method - s_get_middle_y(relative = false) - which returns their "middle" y position (the middle of their sprite), which is applied to all places it's applicable. has an optional argument relative.
  • fixed the encounter_end (Ctrl + W) command in the console
  • renamed party_getpos to party_get_index for better clarity
  • enc_getparty_sprite’s first argument is now party_name instead of party_index
  • renamed o_ui_enemydialogue to o_ui_actordialogue for better clarity
  • new function actor_dialogue_create that creates speech bubbles
  • enc_hurt_enemy’s third argument (used to be called index) now accepts party_name instead. adjusted all mentions to port.
  • in cutscene_set_partysprite, changed selection to party_name.
  • renamed enc_sparepercent_enemy to enc_enemy_add_spare for better consistency with the other enemy functions
  • renamed enc_sparepercent_enemy_from_inst to enc_enemy_add_spare_from_var for better consistency with the other enemy functions
  • added proper JSDoc to enc_enemy_add_spare and enc_enemy_add_spare_from_var
  • added a “tired” hpchange sprite
  • renamed enc_steup to enc_setup…………………….
  • o_text_hpchange will now calculate its y offset automatically if it’s colliding with another instance of itself
  • removed x_off and y_off arguments from enc_hurt_enemy
  • miscellaneous bug fixes