2020-12-04 22:27:17 +01:00
|
|
|
// Script assets have changed for v2.3.0 see
|
|
|
|
// https://help.yoyogames.com/hc/en-us/articles/360005277377 for more information
|
2020-12-05 12:48:37 +01:00
|
|
|
|
2020-12-06 00:00:34 +01:00
|
|
|
/*
|
|
|
|
@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) {
|
2020-12-06 12:38:35 +01:00
|
|
|
knockback = 20;
|
2020-12-06 00:00:34 +01:00
|
|
|
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, degats) {
|
2020-12-06 14:34:06 +01:00
|
|
|
objAttaque.pv -= degats;
|
|
|
|
if (objAttaque.pv <= 0) instance_destroy(objAttaque);
|
|
|
|
else knockBack(objAttaquant, objAttaque);
|
2020-12-06 00:00:34 +01:00
|
|
|
}
|
|
|
|
|
2020-12-05 17:19:25 +01:00
|
|
|
/*
|
|
|
|
@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;
|
2020-12-04 22:23:03 +01:00
|
|
|
}
|