Ajout de la possibilité d'ajouter une attaque ou un déplacement - Ajout des différentes distances d'attaques sur les robot - Ajout de la possibilité d'afficher ou non la distance d'attaque des robots en cliquant dessus (pour le moment, on ne peut cliquer dessus uniquement lorsque le jeux est en marche) - Ajout de la visibilité des trois distances d'attaque à l'aide d'un code couleur (vert, orange, rouge) - Fix d'un problème d'affichage lorsque les robots mourraient (les cercles de distance restaient affichés) - Ajout de la possibilité de modifier la vitesse des robots - Reclassification des dossiers du code sous forme de niveau de création (niveau 1 - 2 - 3)
parent
8169ee92ae
commit
4c8a6d4adc
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@
|
||||
class AddNode extends Phaser.Scene{constructor(e,t,n){super("AddNode"),this.father=e,this.gameR=t,this.selected=n,this.lCategory=[]}create(e){let t=HEIGHT_WINDOW/(4/3);this.add.rectangle(0,0,WIDTH_WINDOW,HEIGHT_WINDOW,0).setOrigin(0,0).setAlpha(.5),this.add.rectangle(0,HEIGHT_WINDOW/2,WIDTH_WINDOW,t,3487290).setOrigin(0,.5),this.createButtonCancel(),this.createButtonAdd(e)}addButton(e,t,n,r,i,a=new Category,s){let d=this.createButton(e,t,n,r,i);return d.on("pointerdown",()=>this.click(d,a,s)),d}createButton(e,t,n,r,i){let a=this.add.image(e,t,i).setOrigin(.5,.5).setInteractive();return a.on("pointerover",()=>a.setFrame(1)),a.on("pointerout",()=>a.setFrame(0)),a.displayHeight=r,null===n?a.scaleX=a.scaleY:a.displayWidth=n,a}click(e,t,n){e.isTinted?t.remove(e):t.add(e,n)}newCategory(e,t,n){let r=new Category(e,t,n);return this.lCategory.push(r),r}addTitle(e,t,n){let r={font:(HEIGHT_WINDOW/12).toString()+"px stencil",fill:"#e2e2e2"};this.add.text(e,t,n,r).setOrigin(.5,.5)}createButtonCancel(){this.createButton(WIDTH_WINDOW/3,HEIGHT_WINDOW/(16/15),null,HEIGHT_WINDOW/9,"cancel").on("pointerdown",()=>this.cancel())}createButtonAdd(e){this.createButton(WIDTH_WINDOW/1.5,HEIGHT_WINDOW/(16/15),null,HEIGHT_WINDOW/9,"add").on("pointerdown",()=>e.addNode())}verifyCategory(){for(let e=0;e<this.lCategory.length;e++)if(!this.lCategory[e].validate())return!1;return!0}cancel(){this.scene.resume("Game"),this.scene.stop("AddNode"),this.father.scene.remove("AddNode")}}
|
@ -1,15 +0,0 @@
|
||||
class AddAttack extends AddNode {
|
||||
constructor(father, game, selected) {
|
||||
super(father, game, selected);
|
||||
}
|
||||
|
||||
create() {
|
||||
console.log("ATTACK");
|
||||
super.create(this);
|
||||
super.addTitle(WIDTH_WINDOW / 2, HEIGHT_WINDOW / 16, selectWord("ADD NODE : ATTACK", "AJOUTER ACTION : ATTAQUE"));
|
||||
super.addTitle(WIDTH_WINDOW / 2, HEIGHT_WINDOW / (16 / 3), selectWord("WHO ?", "QUI ?"));
|
||||
super.addButton(WIDTH_WINDOW / 2, HEIGHT_WINDOW / (16 / 5), null, HEIGHT_WINDOW / 8, 'enemyBot');
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
class Attack {
|
||||
constructor() {
|
||||
|
||||
}
|
||||
|
||||
do(robot) {
|
||||
if (robot.haveTarget() && robot.isTargetInRange()) {
|
||||
return robot.attackTarget();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
class AddAttack extends AddNode {
|
||||
constructor(father, game, selected) {
|
||||
super(father, game, selected);
|
||||
}
|
||||
|
||||
create() {
|
||||
console.log("ATTACK");
|
||||
super.create(this);
|
||||
super.addTitle(WIDTH_WINDOW / 2, HEIGHT_WINDOW / 16, selectWord("ADD NODE : ATTACK", "AJOUTER ACTION : ATTAQUE"));
|
||||
super.addTitle(WIDTH_WINDOW / 2, HEIGHT_WINDOW / (16 / 3), selectWord("WHO ?", "QUI ?"));
|
||||
super.addTitle(WIDTH_WINDOW / 2, HEIGHT_WINDOW / (16 / 7), selectWord("TARGET FILTERS (OPTIONAL)", "FILTRES CIBLES (FACULTATIF)"));
|
||||
|
||||
super.addButton(WIDTH_WINDOW / 2, HEIGHT_WINDOW / (16 / 5), null, HEIGHT_WINDOW / 8, 'enemyBot', super.newCategory('target', true, true), false);
|
||||
let c2 = super.newCategory('range', true, true);
|
||||
super.addButton(WIDTH_WINDOW / 3, HEIGHT_WINDOW / (16 / 9), null, HEIGHT_WINDOW / 8, 'shortRange', c2, 1 / 3);
|
||||
super.addButton(WIDTH_WINDOW / 1.5, HEIGHT_WINDOW / (16 / 9), null, HEIGHT_WINDOW / 8, 'mediumRange', c2, 2 / 3);
|
||||
super.addButton(WIDTH_WINDOW / 2, HEIGHT_WINDOW / (16 / 12), null, HEIGHT_WINDOW / 8, 'longRange', c2, 1);
|
||||
}
|
||||
|
||||
addNode() {
|
||||
if (super.verifyCategory()) {
|
||||
this.selected.addRect(new RectangleNode(this.selected.getX(), this.selected.getY() + 200, this.gameR, 'attack', this.lCategory[1].getValue()));
|
||||
super.cancel();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
class Attack {
|
||||
constructor(percentRange = 1) {
|
||||
if (percentRange > 1 / 3) {
|
||||
if (percentRange > 2 / 3) {
|
||||
percentRange = 1;
|
||||
} else {
|
||||
percentRange = 2 / 3;
|
||||
}
|
||||
} else {
|
||||
percentRange = 1 / 3;
|
||||
}
|
||||
this.percentRange = percentRange;
|
||||
}
|
||||
|
||||
do(robot) {
|
||||
if (robot.haveTarget() && robot.isTargetInRange(this.percentRange)) {
|
||||
return robot.attackTarget();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
Loading…
Reference in new issue