Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Currently catch rate is calculated the same way for every monster (in itemuse_catch), the easiest way to allow it to be different would be to add a new stat mond_CATCHRATE for catch rate in init_monsters/init_monster. It's a number that you multiply the final ball_catch_rate value with in itemuse_catch, which is 1.00 for normal catch rate, higher numbers for easy monsters and lower numbers for stronger ones (e.g. legendaries could have a catch rate of 0.10)

For skins I think the easiest way would be to have a new AMP stat, which is rolled when you generate a monster using some formula (e.g. always 0.001 chance to be shiny which is rolled for every monster, player_step_fill has a table of regional varieties which only applies in certain rooms, etc). The skin would normally be 0 which is the default skin but higher values represent other skins. The monster's sprite would simply have multiple subimages (one for each skin) and the one representing the current skin is drawn everywhere the monster's sprite is used, instead of always using subimage 0 like we do now (do a search for all occurrences of mond_SPRITE_BATTLE to find them all)

E.g. here we draw spr with subimage zero always, we would want to draw it using the new skin variable instead.

So you'd modify it like so,

var skin = amp_read_var(AMP_CLIPBOARD,amp_SKIN)

draw_sprite_ext(spr,skin, ...)