Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Hey Yal can you help me with making abilities so far i have initialized them the same way you have monsters and items, but i cannot seem to understand how those work also i am having trouble drawing them in the status menu, how do i do that.

So far i have done this :

function init_ability(argument0, argument1, argument2, argument3, argument4, argument5, argument6 ,argument7) {

global.ability_data[argument0,abl_NAME ] = argument1

global.ability_data[argument0,abl_TRIGGER ] = argument2

global.ability_data[argument0,abl_TARGET1 ] = argument3[0]

global.ability_data[argument0,abl_CHANCE1 ] = argument3[1]

global.ability_data[argument0,abl_TYPE1 ] = argument3[2]

global.ability_data[argument0,abl_EFFECT1 ] = argument3[3]

global.ability_data[argument0,abl_SEVERITY1 ] = argument3[4]

global.ability_data[argument0,abl_TARGET2 ] = argument4[0]

global.ability_data[argument0,abl_CHANCE2 ] = argument4[1]

global.ability_data[argument0,abl_TYPE2 ] = argument4[2]

global.ability_data[argument0,abl_EFFECT2 ] = argument4[3]

global.ability_data[argument0,abl_SEVERITY2 ] = argument4[4]

global.ability_data[argument0,abl_WEAKNESS1 ] = argument5[0]

global.ability_data[argument0,abl_WEAKNESS2 ] = argument5[1]

global.ability_data[argument0,abl_WEAKNESS3 ] = argument5[2]

global.ability_data[argument0,abl_IMMUNITIES1 ] = argument6[0]

global.ability_data[argument0,abl_IMMUNITIES2 ] = argument6[1]

global.ability_data[argument0,abl_IMMUNITIES3 ] = argument6[2]

global.ability_data[argument0,abl_STRENGTHEN1 ] = argument7[0]

global.ability_data[argument0,abl_STRENGTHEN2 ] = argument7[1]

global.ability_data[argument0,abl_STRENGTHEN3 ] = argument7[2]

}

/// init_abilities()

function init_abilities() {

init_ability(abl_FLAMECLOAK, "Flame Cloak", EMERGE,

[movetarg_USER, 100, type_FIRE, ailment_BURN, 1],

[NONE,NONE,NONE,NONE,NONE],

[NONE,NONE,NONE],

[NONE,NONE,NONE],

[NONE,NONE,NONE]

);

}

#region//ability region

#macro abl_NAME 1

#macro abl_TRIGGER 2

#macro abl_TARGET1 3

#macro abl_CHANCE1 4

#macro abl_TYPE1 5

#macro abl_EFFECT1 6

#macro abl_SEVERITY1 7

#macro abl_TARGET2 8

#macro abl_CHANCE2 9

#macro abl_TYPE2 10

#macro abl_EFFECT2 11

#macro abl_SEVERITY2 12

#macro abl_WEAKNESS1 13

#macro abl_WEAKNESS2 14

#macro abl_WEAKNESS3 15

#macro abl_IMMUNITIES1 16

#macro abl_IMMUNITIES2 17

#macro abl_IMMUNITIES3 18

#macro abl_STRENGTHEN1 19

#macro abl_STRENGTHEN2 20

#macro abl_STRENGTHEN3 21

#endregion

I think the easiest way to figure out how to implement abilities would be running a search (Ctrl+Shift+F) for itemvalidflag_AUTO_, this should bring up all the places where items are automatically triggered (e.g. the Spiked Shell being triggered on damage to deal a counter attack... you'd want a similar check for abilities being triggered on damage at basically the same place, for things like Flash Fire, Sturdy and so on; other abilities might trigger on each turn, or when attacking, etc)

You'll also need to actually give abilities to monsters (so init_monster needs to take a new argument for ability, the global.monster_data array be extended so it can fit this new data in, and the giant setup in init_monsters should provide it of course)

To show the ability, mev_pause_monsters_status is the script that builds the status screen. You'd read out the abl_NAME field here and create a ggui_element_text to display it somewhere.