From 297c89f6bd224d6adab8e2c97c8ce6118be9f7ba Mon Sep 17 00:00:00 2001 From: rick Date: Sun, 6 Dec 2020 00:00:34 +0100 Subject: [PATCH] =?UTF-8?q?Cr=C3=A9ation=20de=20fonctions=20pour=20l'attaq?= =?UTF-8?q?ue=20et=20le=20knockback?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/Script1/Script1.gml | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/scripts/Script1/Script1.gml b/scripts/Script1/Script1.gml index 043fdb7..8471916 100644 --- a/scripts/Script1/Script1.gml +++ b/scripts/Script1/Script1.gml @@ -1,6 +1,41 @@ // 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 = 10; + 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) { + if (objAttaque.pv <= 0) { + instance_destroy(objAttaque); + } else { + objAttaque.pv -= degats; + knockBack(objAttaquant, objAttaque); + } +} + /* @description Récupère tous les instances d'obj se trouvant dans un rectangle @param {x1} coordonnée x gauche du rectangle