// Script assets have changed for v2.3.0 see // https://help.yoyogames.com/hc/en-us/articles/360005277377 for more information /* @description Repousse objRepousse d'après la position de obj de 10px @param {obj} Objet définissant vers où sera repoussé l'objRepousse @param {objRepousse} objet qui sera repoussé */ function knockBack(obj, objRepousse) { knockback = 20; oY = objRepousse.y; oX = objRepousse.x; if (obj.x > oX && !place_meeting(oX-knockback-1, oY, oWall)) { objRepousse.x -= knockback; } else if (obj.x < oX && !place_meeting(oX+knockback+1, oY, oWall)) { objRepousse.x += knockback; } else if (obj.y > oY && !place_meeting(oX, oY-knockback-1, oWall)) { objRepousse.y -= knockback; } else if (obj.y < oY && !place_meeting(oX, oY+knockback+1, oWall)) { objRepousse.y += knockback; } } /* @description Inflige des dégâts à objAttaque. Exécute le knockback lors de son appel. @param {objAttaquant} Objet qui inflige les dégâts @param {objAttaque} objet qui perd des pv @param {degats} dégâts infligés (permet de gérer les attaques cac ou distance pour le joueur */ function hit(objAttaquant, objAttaque) { objAttaque.pv -= objAttaquant.attack; if (objAttaque.pv <= 0) { if (objAttaque.object_index = oPlayer) global.perdu = true; else instance_destroy(objAttaque); } } /* @description Récupère tous les instances d'obj se trouvant dans un rectangle @param {x1} coordonnée x gauche du rectangle @param {y1} coordonnée y haut du rectangle @param {x2} coordonnée x droit du rectangle @param {y2} coordonnée y bas du rectangle @param {obj} le type des instances à chercher @return la liste des id des instances se trouvant dans le restangle */ function getCollisionArea(x1, y1, x2, y2, obj){ list = ds_list_create(); with(obj) { if ( x >= x1 && x <= x2 && y >= y1 && y <= y2) { ds_list_add(list, obj.id); } } return list; }