Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft : Capture the flag #44

Open
wants to merge 25 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
d1d3c67
Début du jeu CTF
orwenn22 Sep 12, 2023
d55bc11
CTF : amélioration code
orwenn22 Sep 13, 2023
847be56
CTF : ramener drapeau adverse à sa base
orwenn22 Sep 13, 2023
d778031
CTF : scoreboard avec les scores
orwenn22 Sep 13, 2023
dfaae9a
CTF : retirer commentaire TODO
orwenn22 Sep 13, 2023
b42becd
CTF : rendre le jeu gagnable
orwenn22 Sep 14, 2023
0b642b7
CTF : effet de glow
orwenn22 Sep 14, 2023
2aeb53d
CTF : drop le drapeau au sol
orwenn22 Sep 14, 2023
1338ead
CTF : cercles autour des spawns de drapeaux
orwenn22 Sep 15, 2023
9d16ab1
CTF : renommer teams en français
orwenn22 Sep 15, 2023
a60fda6
CTF:Ne pas drop le drapeau si joueur meurt dans le vide
orwenn22 Sep 16, 2023
ab41249
CTF : 8 joueurs max dans la game
orwenn22 Sep 17, 2023
5905c6e
CTF : amélioration check si le joueur casse son propre drapeau
orwenn22 Sep 17, 2023
a6a7ab4
CTF : ajouter killzone
orwenn22 Oct 1, 2023
a3f9f41
CTF : suivre la position des drapeaux
orwenn22 Oct 1, 2023
f1d5223
CTF: toujours drop le drapeau sur un block solide
orwenn22 Nov 9, 2023
ac3a4cf
CTF: amélioration drop drapeau
orwenn22 Nov 9, 2023
0c50291
CTF : utiliser TeamWin pour définir les vainqueurs
orwenn22 Dec 14, 2023
2401c97
Merge remote-tracking branch 'origin/dev' into CTF
orwenn22 Dec 14, 2023
39bde86
CTF : typo belowBock -> belowBlock
orwenn22 Dec 15, 2023
8183c2c
CTF : game_points -> gamePoint
orwenn22 Dec 15, 2023
211a8ef
CTF : belowBlock
orwenn22 Dec 15, 2023
4459613
CTF : ne pas utiliser le snake case dans initFlags
orwenn22 Dec 15, 2023
585eb48
CTF : Ne pas hardcoder les positions dans l'inventaire
orwenn22 Jan 5, 2024
e550b48
CTF : Gérer les particules dans une classe séparé
orwenn22 Jan 5, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import fr.efreicraft.ludos.core.Core;
import fr.efreicraft.ludos.core.players.LudosPlayer;
import fr.efreicraft.ludos.core.utils.MessageUtils;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
Expand All @@ -16,36 +15,22 @@ public void onPlayerDrop(PlayerDropItemEvent event) {

@EventHandler
public void onPlayerBreakBlock(BlockBreakEvent event) {
LudosPlayer ludos_player = Core.get().getPlayerManager().getPlayer(event.getPlayer());
LudosPlayer ludosPlayer = Core.get().getPlayerManager().getPlayer(event.getPlayer());

String team_to_check = ""; //on doit vérifier si le joueur n'appartient pas à cette team avant de casser le drapeau
String teamToCheck; //on doit vérifier si le joueur n'appartient pas à cette team avant de casser le drapeau

//Obtenir la team du drapeau
switch (event.getBlock().getBlockData().getMaterial()) {
case RED_BANNER -> team_to_check = "RED";
case BLUE_BANNER -> team_to_check = "BLUE";
case RED_BANNER -> teamToCheck = "RED";
case BLUE_BANNER -> teamToCheck = "BLUE";
default -> {
event.setCancelled(true);
return;
}
}

//Vérifier si le joueur n'essaie pas de casser le drapeau de sa propre équipe
if(Core.get().getTeamManager().getTeam(team_to_check).getPlayers().contains(ludos_player)) {
ludos_player.sendMessage(
MessageUtils.ChatPrefix.GAME,
"Tu ne peux pas récupérer ton propre drapeau !"
);
event.setCancelled(true);
return;
}

ludos_player.sendMessage(
MessageUtils.ChatPrefix.GAME,
"Tu as récupéré le drapeau adverse !"
);

//TODO : stocker les joueurs possédants les drapeaux dans GameLogic


//vérifier si un joueur n'essaie pas de casser son propre drapeau,
//puis stocker le joueur possédant le drapeau dans gameLogic
event.setCancelled(ctfLogic.BreakFlag(ludosPlayer, teamToCheck));
}
}
Original file line number Diff line number Diff line change
@@ -1,24 +1,22 @@
package fr.efreicraft.ludos.games.ctf;

import fr.efreicraft.ludos.core.Core;
import fr.efreicraft.ludos.core.players.LudosPlayer;
import fr.efreicraft.ludos.core.utils.MessageUtils;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;

public class GameLogic {
public Location redLocation;
public Location blueLocation;
private Location redLocation = null;
private Location blueLocation = null;

public int scoreTeamRed;
public int scoreTeamBlue;
private int scoreTeamRed = 0;
private int scoreTeamBlue = 0;

public GameLogic() {
redLocation = null;
blueLocation = null;

scoreTeamRed = 0;
scoreTeamBlue = 0;
}

//Faire apparaître les drapeaux sur la map, et stocker leurs positions
Expand All @@ -35,4 +33,28 @@ public void preparePlayerToSpawn(LudosPlayer player) {
player.entity().getInventory().addItem(new ItemStack(Material.DIAMOND_SWORD));
//TODO : ajouter + d'équipement ici ?
}


//player : joueur qui a cassé le drapeau
//teamToCheck : la team du drapeau qui a été cassé (utilisé pour empécher une équipe de détruire son propre drapeau)
//retourne true pour annuler l'event du cassage, sinon retourne false
JiveOff marked this conversation as resolved.
Show resolved Hide resolved
public boolean BreakFlag(LudosPlayer player, String teamToCheck) {
JiveOff marked this conversation as resolved.
Show resolved Hide resolved
//Vérifier si le joueur n'essaie pas de casser le drapeau de sa propre équipe
if(Core.get().getTeamManager().getTeam(teamToCheck).getPlayers().contains(player)) {
player.sendMessage(
MessageUtils.ChatPrefix.GAME,
"Tu ne peux pas récupérer ton propre drapeau !"
);
return true;
}

player.sendMessage(
MessageUtils.ChatPrefix.GAME,
"Tu as récupéré le drapeau adverse !"
);

//TODO : stocker les joueurs possédant les drapeaux dans la classe

return false;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ public Main() {
public Class<? extends Game> getGameClass() {
return LudosGame.class;
}
}
}