From 0363bcf6000b14c185131927fa00af96be9a750e Mon Sep 17 00:00:00 2001
From: MasterPyo <olivier.pillods@gmail.com>
Date: Thu, 27 Apr 2023 20:26:21 +0200
Subject: [PATCH] clic on red/purple target works now + graveyard pieces can't
 be clicked now

---
 .../src/main/java/controller/Main.java        |  53 +++++++++++-------
 .../src/main/java/view/BoardView.java         |   6 +-
 .../src/main/java/view/PieceView.java         |  20 +++++++
 .../target/classes/controller/Main.class      | Bin 6686 -> 6956 bytes
 .../target/classes/view/BoardView.class       | Bin 6365 -> 6417 bytes
 .../target/classes/view/PieceView.class       | Bin 1209 -> 1893 bytes
 6 files changed, 59 insertions(+), 20 deletions(-)

diff --git a/MavenChess/MavenChess/src/main/java/controller/Main.java b/MavenChess/MavenChess/src/main/java/controller/Main.java
index 008b995..9328f91 100644
--- a/MavenChess/MavenChess/src/main/java/controller/Main.java
+++ b/MavenChess/MavenChess/src/main/java/controller/Main.java
@@ -94,25 +94,38 @@ public class Main extends Application {
 	}
 
 	public void clickPiece(PieceView clickedPiece) {
-		// clicking a piece will ask her available moves
-		Position position = clickedPiece.getPosition();
-		board.setSelected(position);
-		boardView.resetColor(material);
-		boardView.setColor(material, position, CustomMaterial.SELECTED_TILE);
-		ArrayList<Position> moves = board.getPiece(position).getAvailableMoves(board);
-
-		// shows all available moves on the tiles, with colors, each tile-color having a meaning
-		for (Position move : moves) {
-			if(board.isFree(move)) {
-				boardView.setColor(material, move, CustomMaterial.MOVABLE_TILE);
-			} else if(board.isEnemy(move, position)) {
-				boardView.setColor(material, move, CustomMaterial.ATTACK_TILE);
-			} else {
-				boardView.setColor(material, move, CustomMaterial.SPECIAL_TILE); // any special move
-			}
-			// PROMOTION (attacking or not)
-			if(board.isPawn(position) && (move.getY() == 8 || move.getY() == 1)) {
-				boardView.setColor(material, move, CustomMaterial.SPECIAL_TILE);
+
+		// graveyard pieces should not do anything
+		if(clickedPiece.getPosition().getX() < 0) {
+			return;
+		}
+		// if piece is an "attack" or "special" target, we consider it an action to apply (tile click)
+		if(clickedPiece.isTargeted()) {
+			clickTile(boardView.getTile(clickedPiece.getPosition().getID()));
+		}
+		else {
+			// clicking a piece will ask her available moves
+			Position position = clickedPiece.getPosition();
+			board.setSelected(position);
+			boardView.resetColor(material);
+			boardView.setColor(material, position, CustomMaterial.SELECTED_TILE);
+			ArrayList<Position> moves = board.getPiece(position).getAvailableMoves(board);
+
+			// shows all available moves on the tiles, with colors, each tile-color having a meaning
+			for (Position move : moves) {
+				if (board.isFree(move)) {
+					boardView.setColor(material, move, CustomMaterial.MOVABLE_TILE);
+				} else if (board.isEnemy(move, position)) {
+					boardView.setColor(material, move, CustomMaterial.ATTACK_TILE);
+					boardView.getPiece(move.getID()).setTargeted(material, CustomMaterial.ATTACK_TILE);
+				} else {
+					boardView.setColor(material, move, CustomMaterial.SPECIAL_TILE); // any special move
+					boardView.getPiece(move.getID()).setTargeted(material, CustomMaterial.SPECIAL_TILE);
+				}
+				// PROMOTION (attacking or not)
+				if (board.isPawn(position) && (move.getY() == 8 || move.getY() == 1)) {
+					boardView.setColor(material, move, CustomMaterial.SPECIAL_TILE);
+				}
 			}
 		}
 	}
@@ -129,6 +142,7 @@ public class Main extends Application {
 					if(arrival.getY() == 8 || arrival.getY() == 1) {
 						// --- ATTACK (while doing promotion) ---
 						if (!board.isFree(arrival)) {
+							boardView.getPiece(arrival.getID()).resetTargeted(material); // reset color
 							boardView.killPiece(arrival); // place piece on graveyard (visual)
 						}
 						// Promotion to Queen (by default, Queen for now)
@@ -179,6 +193,7 @@ public class Main extends Application {
 			else {
 				// --- ATTACK ---
 				if(state == TileView.ATTACK) {
+					boardView.getPiece(arrival.getID()).resetTargeted(material); // reset color
 					boardView.killPiece(arrival); // place piece on graveyard (visual)
 				}
 				// --- MOVE ---
diff --git a/MavenChess/MavenChess/src/main/java/view/BoardView.java b/MavenChess/MavenChess/src/main/java/view/BoardView.java
index dc006f2..1235ffd 100644
--- a/MavenChess/MavenChess/src/main/java/view/BoardView.java
+++ b/MavenChess/MavenChess/src/main/java/view/BoardView.java
@@ -21,7 +21,6 @@ public class BoardView {
 				createTile(new Position(i, j));
 			}
 		}
-		resetColor(material); // init/reset the board squares with black and white
 
 		// creates the 3d pieces (from the board list)
 		pieces = new PieceView[64];
@@ -41,6 +40,8 @@ public class BoardView {
 		// init graveyards as empty
 		black_death_count = 0;
 		white_death_count = 0;
+
+		resetColor(material); // init/reset the board squares with black and white
 	}
 
 	public TileView getTile(int id) {
@@ -131,6 +132,9 @@ public class BoardView {
 					getTileObj(n).setMaterial(material.get(CustomMaterial.WHITE_TILE)); // (visually)
 				}
 				getTile(n).setState(TileView.NORMAL); // (on 'state' attribute)
+				if(getPiece(n) != null) {
+					getPiece(n).resetTargeted(material); // reset the 3d pieces color too (visual)
+				}
 			}
 		}
 	}
diff --git a/MavenChess/MavenChess/src/main/java/view/PieceView.java b/MavenChess/MavenChess/src/main/java/view/PieceView.java
index 3e6cb14..a67f77f 100644
--- a/MavenChess/MavenChess/src/main/java/view/PieceView.java
+++ b/MavenChess/MavenChess/src/main/java/view/PieceView.java
@@ -1,17 +1,20 @@
 package view;
 
 import javafx.scene.shape.MeshView;
+import model.Piece;
 import model.Position;
 
 public class PieceView {
 	private MeshView obj;
 	private Position position;
 	private int color;
+	private boolean isTargeted;
 
 	public PieceView(MeshView obj, Position position, int color) {
 		this.obj = obj;
 		this.position = position;
 		this.color = color;
+		isTargeted = false;
 	}
 
 	public MeshView getObj() {
@@ -37,4 +40,21 @@ public class PieceView {
 	public void setColor(int color) {
 		this.color = color;
 	}
+
+	public boolean isTargeted() {
+		return isTargeted;
+	}
+
+	public void setTargeted(CustomMaterial material, int tileColor) {
+		isTargeted = true;
+		obj.setMaterial(material.get(tileColor));
+	}
+
+	public void resetTargeted(CustomMaterial material) {
+		isTargeted = false;
+		if(color == Piece.WHITE)
+			obj.setMaterial(material.get(CustomMaterial.WHITE));
+		else
+			obj.setMaterial(material.get(CustomMaterial.BLACK));
+	}
 }
diff --git a/MavenChess/MavenChess/target/classes/controller/Main.class b/MavenChess/MavenChess/target/classes/controller/Main.class
index a58fe7ddbb1a5d7404aac4d5172a66aeafdf4666..5e69f5ffa85aa5268903966b3a16a5f30e180f58 100644
GIT binary patch
delta 2484
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
T$~s%Dr4nY!@~vFPHU$0!P~jh<

delta 2257
zcmZ`)dr(wm6#t!l-QBz2uFFGl6%Yk<d4&;DfT9Lygb+Rx@x^0xkd>VPwKCgjY{p(Q
zHQj7l#}ubOsL3>?R`Fe_rS_04E3(X9l$AZ~Nratmcae#)*|~dv-}%n@eZPCox#w=r
z*^;fE?Avz;Kmje=rM8*PRoEl27adxG#TB<--~i?l)FyYcyQR?U@iwWb!6AXeIHIk$
z<eOd<xF4@+M=eR#V>qthb%8f<Lc44!wV%S93f>ZU8}AUJv^(rk+7flFwG;0uI3w^L
z-q#*eM>z<3SIPn_I`M(PhxkbAP~+njd`z&f^wzmOnHApV`j&ccqlzkgBJe5BYZuf+
z(*=Rg@r9;Zvx=+mmB80HPcYRtS5&WI*Dib`@GUM949ndumBB+wRBXog0zXKzna#6X
zs$1NW_D6xAw4K(N_!?Xm_!S)lOGCZKQ&I1(4LbZT@CW|X`m9L`dIbJPua+VT6!ZyP
zA!v<a!d&z*6X^vR!a_>x8<(>XG6_=ph0K=*i-3_-g3(n{k}^+52|>1S)GV*JL4}is
z2y#$_7G+5^J1I&~G!50d#kessf`*fm^|AgUx2L5#^lU{cqG+U`Sc+>OZ%ZeesP)v>
zHn{78kDx8EXS6?QKS1^wDwR>WLbnO3pqcGU9R`{-n-Jrgv7&l)^|CuN-K*V=Et$pg
zKR;#O5F^c%YUT+lrfCkE#)e91SRkm7iX601+ZN$USS(FT1Wl$X1X0r1=x!?XR5v%f
zn-!`dBx{|Hn8za>RHsEmZYYT7cFP3u4=|?g0qtU-qfz{C3L5Q{z*vMFXf%!C6;UE3
z@qc{#*~mhoQQC;;H9qN9z(MCRl#*#I^f--F8b>asvm%00D3xu!7#p%NOIDapqBKfp
z!VKn!fUy^+DX~Z1iF%L>3tfj@@;u(o35zxB4`TaX?C96)161hPVG$H8rUXVI(Pqk|
z@w_5gwh#$D2m>nxPNoI0yDar3EKUy~!1v{R<p;2@AEp}vI2hi4McxBATAmTW$vlJ8
z(7`g{#|DYc`UpqRm1mSrPL4X~M|3}n(`aIvHe`l2`K-_Wv#SJmBL>{f1E+rJN0Q|0
zc9^$91d*W?gM8brtn$f37=nc>z!1hYFrpSV)L}T>oWy0AfO^ct3eHdi8sWiOti&Vm
zViTHp$~5CRR^bFzQvye4bM#ECqU$M(5od}*rI+Xit}eeZI7ZpLt7G1cG{HwX(9@0V
zD$^b`(M@cTC5?m9hkONH3Qj5L>_ryiI9pr~Y&{%L^6d&$M)xRJM&V*ra%H}oB=Z%(
zrE*^UoM(vjQ*NwbD`m$jtz?sXTnWz49H$`wUpPSwyE#EqgQ@1lxlIr<vC`)kY2;-8
zCJlU*W$@xJY0Qw@|46e$L_u4Cbbgd8IYwzRI?Sz59Ht!Oeson1HS*Ejd&rz;3Wb||
zSL03Lc&CAVf}9c&wP9VD*6K$S)3R|etCTT7>ohpIal#Y~!@34(Z9{Ubsns{=F|YAN
z{mm^qMIY>xEf~l6F0SR>+$n1jg?kW-dodb5q~ktJ#(I?UM`aE+U?Cph{&|S|<YBDC
z6TEtgkslkmfBe|&!?SoAyRn78Qd_x|TKV<ghBJ7EKN4-Yz`Gam94_H`^kF+$@B&3+
z2fxufc|g2KX?U4m(g5Z1xG%&$D#Kx#k0X@8@)p9v2NhE;dm5R?MS0wICgz+Tw)OF#
z@r8`sIsKi=D4%BzcPh=HiE<9XMl)y<2kUu2Pon}xhG2un!_tSz{Au70?TU8wVkFO<
z++K{}+eBNGLno(cs6$c2JbIR8N=*xpy?^|0!b0<MR#0<7$faKjOu_LdhpdUF(#_B@
zCC}_@QAS>+3^SJg52GBi1B^aN$=`)A<rEemr=jfq;Vg7mfJO`^E)Eh83;A7@Dp=rj
tCf3s}9IvAix|Q$zKvc@tEY9WaVKkqr!e|jyIcO=nseF7j)sh>|e*r4&(xd<Y

diff --git a/MavenChess/MavenChess/target/classes/view/BoardView.class b/MavenChess/MavenChess/target/classes/view/BoardView.class
index 13aa03119faf5d4aef19c4100a993ea3c4332aaf..899a1f0571f780e57241ebcaad5bc04e9324a0c2 100644
GIT binary patch
delta 2894
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

delta 2858
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
Mx;sTRUuk06r}S<Rj{pDw

diff --git a/MavenChess/MavenChess/target/classes/view/PieceView.class b/MavenChess/MavenChess/target/classes/view/PieceView.class
index 861779ea1eb44cd71c28a9393b6864abf3cf04a9..2cacf877973b8926ea0dae0b465634a7c1287266 100644
GIT binary patch
literal 1893
zcmaJ>-Ez}L7(HvtmgC3{aelxgfdEY_DS!$TXln>9X=zOz$PA1JxKqqFQR-M3TM0Z4
zcfIKaooT{Mnc)F=D2B5u*^V_HE+Vbg=R4=@_npnhPyc@au!hYdGRT@REaZ?EIJN5^
z`d-`bY<rKlc4aFP$lnP%L9`~2wVmb!3Yaiav@i)vpnMp}SKekITe8U&G2zy(z*0le
z{Q27JwPZ(ny&ZpFdK<F0qd+yqQMNFJQv!wkuopx@*r9Y|FMKK6-e$6+aTN<Qm=(yi
z!gkmd5Oq~OZ{ak~2o!_fQ@^_{Bl(g)y)bc>mPT2MsAAE=63z)2L_X8!sH^Q|3m5v^
z&(+2y)r7AoX4mUZvxu+pjS1U=16N>1A9ekp7lnHpek8kr-zFC+1y=03GkWBGKj=i>
z=1$nz?t^PZT*eg>S1ow>R$$=^JrbDg$*5l`uxyW`@BdzNnkKHZCONtqhrqQ|O==41
zZu7+K&^kvTFx3b;^3lQGmh3+Dx7ysPG{TnOZu&emzmrWP+6j7UaHA=xF*9rn^CNKH
zPBkXwf>0h*L(^wWA(g#J()Qy)PvjmQHkDQ1hL9OMjZieE-|Ys6YJ3F}uE)tLurOH~
z94BGS`-_-x7_zDzA9gecHH|Oq4Pr4j79}td1#OwAl)93VL+Uf*sg;w`lgMxVwc+n4
zjW0e454tV+fMg8(;QC!viDIS;ywiZeCod^i8Fkn6n|DdSd3*RSf?3B6KELDF0dWT3
zRrei)yLtrEy?lg{yL5zUH+zJ+e|70iKF=c0XNmAKCP-c;{S2l_TEQ*;;>JX{jqmwI
zN^L~wm9nDjRn^5tmf}C)$Haoiw?gII|6so5A_FCt*PC;i+KK@QwLlGbxTE~95v_>x
z+WXL~`VXh%a<r|?&Bv&LxqM<y;4V30u9HSeX(LNxjoiaeNpXWxN^;hHkLvT)V=VCR
z{5xD^H`BH*unQMY*qR;Kn#IrTl<LQQoEu|n`X5T1?9a+rTkH5GDIWG`ffG#|acJ5-
zVI)5=lGlS$Mo#0`F-GRnMy`xC@&Laj#m_kPEX`M3gQ-%ZUR^xK$}v`lrpg*|ji#<M
zS2r}{a$GeqR>AM6laow%$Sh^J{sWCf<rUFt3XaY$Ri=$MlvHX)toApi^k;S`p4EAq
mrz|L$qg06zUSvRRCT*A=XJEofOl+`%H*Rr~@{hRA;PGbzs#RwI

literal 1209
zcmaKrUr!T36vfZ9%Whki0&OV@@<&wIZjlxLJYjetF=<kjMAOLQwvKe0rAyjU{ZKw=
zB9dt02k=7~&&)1`HiR_YnZ3RD+~1r#{rm6N9{~G!kwXe;3x<s;m;!Shf9QLm-#zx;
zHaoI45HMc`-C(dUkajAKEHcPi$k~{NEs!4u^0Rjs$d+ty$DF9y5m>1!nNMH5eoJ<x
z*Khl$(t9oYZI!gAH1alPF(;5YjrzeLh`MZDKZ!od&^t^bI<H`(h?2lmD+;5YfT&q0
zv+sCn4hy(r<1Us2jAJ?YpkZq&e9y+pW%x)1*3?PYsp!;dm4?8sb1Up5l&&!jNGdQ}
z54!Tr*-2CO-uumvkwQIc`C-HF1?oKs8iRJwSLYiyYme5Fl{O2kIh9)}nA%TL*Kg-l
zN1CSWrHf>u_PAZ_JWaW)l%g}4p=2z-*9(Sz$SG0qARa)5g~`@%v>CZ~(OIu0Uj@p5
z{OB(1s4IZ`oOOyfEzKuy40kCtc)fD4TrF@G%oEt)TgcxHt|j*Z!mXaea<|Vh<F1@z
z{=2Svz-O5ipq@d+EM}1Br%2t0jJk0>9$}MjRMLHg-l@)trlc+vnFO}rB%M93Dr?I9
z0qYw#DX3Pa4i>bu9VaBx0u?rkvG<v+giVcn1*-mCG47&PD92eNI5UA0sA4<Ox(+fk
z39@t}$Ybmz#dSKPPw4)}!cp}n7WrMiz$#6g#9E~bYuB(!BdiiUI;H%0f~6a<=D$w(
lvvDKVE}kaESN<%I4Kns;lh9k&K+F+{sRyM%p6QOy{{sfZ$5Q|R

-- 
GitLab