Commit 1f6e6b94 authored by Killian LUCAS's avatar Killian LUCAS
Browse files

conception.adoc

parent 5d9868b3
......@@ -169,7 +169,7 @@ class Room{
+ movePlayer(idPlayer : Integer) : Pair<Integer, Place>
+ swapJetons(idPlayer : Integer) : Pair<JetonSymbol, JetonSymbol>
+ associateCardNamesToPlaces(idPlayer : Integer, cardsToAssociate : Card[*]) : Map<Card, Place>
+ createTActionForAssociateCardNamesToPlaces( cardsToAssociate : Card[*]) : TAskAction
+ createTActiobj : ObjectonForAssociateCardNamesToPlaces( cardsToAssociate : Card[*]) : TAskAction
+ computeMapCardToPlaceFromMapCardNamesToPlace( cardNamePlaceMap : Map<CardName, Place>, cards : Card[*]) : Map<Card, Place>
......@@ -196,16 +196,289 @@ class PowerApplicator{
- applyPlaceCardPower(game : Game, cardName : CardName, idPlayer : Integer)
- applyTrackingCardPower(game : Game, cardName : CardName, idPlayer : Integer)
- applySurvivalCardPower(game : Game, cardName : CardName, idPlayer : Integer)
- applyJetonArtemia(game : Game, idPlayer : Integer)
- applyJetonCreature(game : Game, idPlayer : Integer, placeCard : PlaceCard)
- applyJetonCible(game : Game, idPlayer : Integer)
- applyPlaceAntre(game : Game, idPlayer : Integer)
- applyPlaceJungle(game : Game, idPlayer : Integer)
- applyPlaceRiviere(game : Game, idPlayer : Integer)
- applyPlacePlage(game : Game, idPlayer : Integer)
- applyPlaceRover(game : Game, idPlayer : Integer)
- applyPlaceMarais(game : Game, idPlayer : Integer)
- applyPlaceAbri(game : Game, idPlayer : Integer)
- applyPlaceEpave(game : Game, idPlayer : Integer)
- applyPlaceSource(game : Game, idPlayer : Integer)
- applyPlaceArtefact(game : Game, idPlayer : Integer)
- applyPlaceBlueArtefact(game : Game, idPlayer : Integer, powersDescription : String[*])
- applyPlaceGreenArtefact(game : Game, idPlayer : Integer, powersDescription : String[*])
- applyPlaceRedArtefact(game : Game, idPlayer : Integer, powersDescription : String[*])
- applyPlaceYellowArtefact(game : Game, idPlayer : Integer, powersDescription : String[*])
- applyPlaceNexus(game : Game, idPlayer : Integer)
- applyPlaceOasis(game : Game, idPlayer : Integer)
- applyPlaceFjord(game : Game, idPlayer : Integer)
- applyPlaceDome(game : Game, idPlayer : Integer)
- applyPlaceLabyrinthe(game : Game, idPlayer : Integer)
- applyPlaceLabyrintheNotAllRevealed(game : Game, idPlayer : Integer)
- applyPlaceLabyrintheAllRevealed(game : Game, idPlayer : Integer)
- applyPlaceMangrove(game : Game, idPlayer : Integer)
- applyPlaceArchipel(game : Game, idPlayer : Integer)
- applyPlacePole(game : Game, idPlayer : Integer)
- applyPlaceFungi(game : Game, idPlayer : Integer)
- applyPlacePortail(game : Game, idPlayer : Integer)
- applyTrackingAcharnement(game : Game)
- applyTrackingAngoisse(game : Game)
- applyTrackingAnticipation(game : Game, idPlayer : Integer)
- applyTrackingCataclysme(game : Game, idPlayer : Integer)
- applyTrackingChampDeForce(game : Game)
- applyTrackingClone(game : Game)
- applyTrackingDeploiement(game : Game, idPlayer : Integer)
- applyTrackingDesespoir(game : Game)
- applyTrackingDetour(game : Game, idPlayer : Integer)
- applyTrackingDomination(game : Game, idPlayer : Integer)
- applyTrackingEffroi(game : Game, idPlayer : Integer)
- applyTrackingEmprise(game : Game, idPlayer : Integer)
- applyTrackingEpidemie(game : Game, idPlayer : Integer)
- applyTrackingFailleTemporelle(game : Game)
- applyTrackingFlashback(game : Game)
- applyTrackingGargantua(game : Game)
- applyTrackingHarcelement(game : Game)
- applyTrackingHurlement(game : Game)
- applyTrackingInertie(game : Game)
- applyTrackingInterference(game : Game)
- applyTrackingIntuition(game : Game, idPlayer : Integer)
- applyTrackingMagnetisme(game : Game)
- applyTrackingMirage(game : Game)
- applyTrackingMutation(game : Game)
- applyTrackingPsychose(game : Game, idPlayer : Integer)
- applyTrackingReminiscence(game : Game, idPlayer : Integer)
- applyTrackingReperage(game : Game, idPlayer : Integer)
- applyTrackingSablesMouvants(game : Game)
- applyTrackingSoifDeSang(game : Game)
- applyTrackingStase(game : Game)
- applyTrackingTelepathie(game : Game, idPlayer : Integer)
- applyTrackingTornade(game : Game, idPlayer : Integer)
- applyTrackingToxine(game : Game)
- applyTrackingUbiquite(game : Game, idPlayer : Integer)
- applyTrackingVirus(game : Game)
- applyTrackingZoneInterdite(game : Game)
- applySurvivalAdrenaline(game : Game, idPlayer : Integer)
- applySurvivalAlerte(game : Game, idPlayer : Integer)
- applySurvivalAmplificateur(game : Game)
- applySurvivalBrouillage(game : Game)
- applySurvivalCavale(game : Game, idPlayer : Integer)
- applySurvivalDetecteur(game : Game, idPlayer : Integer)
- applySurvivalDrone(game : Game, idPlayer : Integer)
- applySurvivalEntrave(game : Game)
- applySurvivalEquipement(game : Game, idPlayer : Integer)
- applySurvivalEsquive(game : Game, idPlayer : Integer)
- applySurvivalFaussePiste(game : Game, idPlayer : Integer)
- applySurvivalHologramme(game : Game, idPlayer : Integer)
- applySurvivalLeurre(game : Game, idPlayer : Integer)
- applySurvivalMimetisme(game : Game, idPlayer : Integer)
- applySurvivalNavette(game : Game)
- applySurvivalPlanques(game : Game, idPlayer : Integer)
- applySurvivalPortail(game : Game, idPlayer : Integer)
- applySurvivalRalliement(game : Game)
- applySurvivalRefuge(game : Game, idPlayer : Integer)
- applySurvivalRegeneration(game : Game, idPlayer : Integer)
- applySurvivalResistance(game : Game, idPlayer : Integer)
- applySurvivalRetraite(game : Game, idPlayer : Integer)
- applySurvivalRiposte(game : Game)
- applySurvivalSacrifice(game : Game, idPlayer : Integer)
- applySurvivalSecondSouffle(game : Game, idPlayer : Integer)
- applySurvivalSixiemeSens(game : Game, idPlayer : Integer)
- applySurvivalSystemeD(game : Game)
- applySurvivalTenacite(game : Game, idPlayer : Integer)
- applySurvivalVaccin(game : Game)
- applySurvivalVolteFace(game : Game, idPlayer : Integer)
- applySurvivalVortex(game : Game, idPlayer : Integer)
- playNewPlaceCard(game : Game, idPlayer : Integer)
- swapHandAndDefaussePlaceCard(game : Game, idPlayer : Integer)
- revealAHiddenPlaceAndApplyItsPower(game : Game, idPlayer : Integer)
- addWillingnessToAPlayer(game : Game, idPlayer : Integer, numberWillingness : Integer)
- chooseCardFromReserve(game : Game, idPlayer : Integer)
- takeBackAllCardsFromDefausse(game : Game, idPlayer : Integer)
- takeBackCardsFromDefausse(game : Game, idPlayer : Integer, numberCards : Integer)
- takeBackCard(game : Game, idPlayer : Integer, cardName : CardName)
- copyPowerWhereJetonCreatureIs(game : Game, idPlayer : Integer)
- copyPowerOfOneCardInDefausse(game : Game, idPlayer : Integer)
- copyPowerOfOneCardInInterval(game : Game, idPlayer : Integer, a : Integer, b : Integer)
- pickSurvivalCards(game : Game, idPlayer : Integer, numberCardsToPick : Integer, numberCardToKeep : Integer)
- throwAwayPlaceCards(game : Game, idPlayer : Integer, numberCardsToThrowAway : Integer)
- throwAwaySurvivalCards(game : Game, idPlayer : Integer, numberCardsToThrowAway : Integer)
- moveTraqueOnAdjacentPlace(game : Game, idPlayer : Integer)
- moveTraqueOnAdjacentPlaceAndAddHimToRetraiteList(game : Game, idPlayer : Integer)
- moveJetonOnAdjacentPlace(game : Game, idPlayer : Integer, symbol : JetonSymbol)
+ chooseTwoAdjacentPlace(game : Game, idPlayer : Integer) : Pair<Place, Place>
- applyPlanetPawn(game : Game)
- applyBeaconPawn(game : Game)
- applyShieldPawn(game : Game)
- checkPlayerIsNotCreature(game : Game, idPlayer : Integer)
- checkPlayerIsNotCreature(game : Game)
+ checkEpidemieCondition(game : Game, placeCard : PlaceCard) : boolean
+ checkInertieCondition(game : Game) : boolean
+ checkAlerteCondition(variables : GameRoundVariables, place : Place) : boolean
+ isABlockedPlaceCard(game : Game, placeCard : PlaceCard) : boolean
+ checkIfAdjacentToJetonCible(game : Game, placeCard : PlaceCard) : boolean
+ findPlaceCardWhereTheJetonCibleIsAndAdjacent(game : Game, placeCard : PlaceCard) : PlaceCard
- subWillingness(game : Game, traque : Traque, numberWillingnessDecrement : Integer)
- subWillingness(game : Game, idTraque : Integer, numberWillingnessDecrement : Integer)
}
class GameRoundVariables{
- numberPawnWillingnessOnBoard : Integer
- actionJetonCible : BiConsumer<Integer, Game>
- actionAdjacentPlaceJetonCible : BiConsumer<Integer, Game>
- incrementScoreTraque : Integer
- numberWillingnessDecrementByJetonCreature : Integer
- numberMaxPlaceCardsGetByPlacePower : Integer
- idPlayerTargetByTrackingCardAnticipation : Integer
- idPlayerTargetByTrackingCardDomination : Integer
- idPlayerTargetByTrackingCardEpidemie : Integer
- targetByAlerte : Place
- playerWhoHaveLostAllWillingness : Integer[*]
- playersWhoHaveResist : Integer[*]
- playersCaughtByCreature : Integer[*]
- playersCaughtByCreatureOnNexus : Integer[*]
- playersWhoDodgeJetonArtemia : Integer[*]
- playersWhoDodgeJetonCreature : Integer[*]
- playersWhoDodgeJetonCible : Integer[*]
- playersWhoHavePlayCavale : Integer[*]
- playersWhoHavePlayDrone : Integer[*]
- playersWhoHavePlayMimetisme : Integer[*]
- playersWhoHavePlayPortail : Integer[*]
- playersWhoHavePlayRegeneration : Integer[*]
- playersWhoIsTargetRetraite : Integer[*]
- playersWhoHavePlayVolteFace : Integer[*]
- playersWhoUseFjordInPreviousRound : Integer[*]
- traqueCanResist : boolean
- traqueCanPickSurvivalCards : boolean
- jetonArtemiaIsActive : boolean
- jetonArtemiaMadeLoseOneWillingness : boolean
- rescuePawnCanMoveForward : boolean
- jetonCibleCanBeOnTwoAdjacentPlaces : boolean
- jetonCreatureCanBeOnTwoAdjacentPlaces : boolean
- jetonArtemiaCanBeOnTwoAdjacentPlaces : boolean
- defaussePlaceCardsAreHidden : boolean
- canPlaceJetonCreatureOnPlaces6To10 : boolean
- survivalCardRalliementIsActive : boolean
- survivalCardRefugeIsActive : boolean
- canPlayTrackingCard : boolean
- inertieTrackingCardIsPlayed : boolean
- jetonCibleBlockPlace : boolean
- jetonCibleBlockAdjacentPlace : boolean
- jetonCibleAdjacentPlaceMoveTraque : boolean
- ralliementIsActive : boolean
- refugeIsActive : boolean
- reset()
- resetAfterNextRoundPowersApplication()
- addPawnWillingnessOnBoard(number : Integer)
+ isPawnWillingnessOnBoard() : boolean
- usePawnWillingnessOnBoard()
+ getActionJetonCible() : BiConsumer<Integer, Game>
- setActionJetonCible(actionJetonCible : BiConsumer<Integer, Game>)
+ getActionAdjacentPlaceJetonCible() : BiConsumer<Integer, Game>
- setActionAdjacentPlaceJetonCible(actionAdjacentPlaceJetonCible : BiConsumer<Integer, Game>)
+ getIncrementScoreTraque() : Integer
- setIncrementScoreTraque( incrementScoreTraque : Integer)
+ getNumberWillingnessDecrementByJetonCreature() : Integer
- setNumberWillingnessDecrementByJetonCreature( numberWillingnessDecrementByJetonCreature : Integer)
+ numberMaxPlaceCardsGetByPlacePowerIsLimited() : boolean
- addNumberWillingnessByJetonCreature()
+ getNumberMaxPlaceCardsGetByPlacePower() : Integer
- setNumberWillingnessDecrementByJetonCreature( numberMaxPlaceCardsGetByPlacePower : Integer)
+ getIdPlayerTargetByTrackingCardAnticipation() : Integer
- setIdPlayerTargetByTrackingCardAnticipation( idPlayerTargetByJetonCreature : Integer)
+ playerIsTargetByTrackingCardDomination() : boolean
+ playerIsTargetByTrackingCardEpidemie() : boolean
+ getIdPlayerTargetByTrackingCardDomination() : Integer
- setIdPlayerTargetByTrackingCardDomination( idPlayerTargetByTrackingCardDomination : Integer)
+ getIdPlayerTargetByTrackingCardEpidemie() : Integer
- setIdPlayerTargetByTrackingCardEpidemie( idPlayerTargetByTrackingCardEpidemie : Integer)
+ alerteIsActive() : boolean
+ getTargetByAlerte() : Place
- setTargetByAlerte(targetByAlerte : Place)
+ getPlayerWhoHaveLostAllWillingness() : Integer[*]
- addPlayerWhoHaveLostAllWillingness(idPlayer : Integer)
+ getPlayersWhoHaveResist() : Integer[*]
- addPlayersWhoHaveResist(idPlayer : Integer)
+ getPlayersWhoHasCaughtByCreature() : Integer[*]
- addPlayersWhoHasCaughtByCreature(idPlayer : Integer)
+ getPlayersWhoHasCaughtByCreatureOnNexus() : Integer[*]
- addPlayersWhoHasCaughtByCreatureOnNexus(idPlayer : Integer)
+ getPlayersWhoHavePlayCavale() : Integer[*]
- addPlayerWhoHavePlayCavale(idPlayer : Integer)
+ getPlayersWhoDodgeJetonArtemia() : Integer[*]
- addPlayersWhoDodgeJetonArtemia(idPlayer : Integer)
+ getPlayersWhoHavePlayDrone() : Integer[*]
- addPlayersWhoHavePlayDrone(idPlayer : Integer)
+ getPlayersWhoDodgeJetonCreature() : Integer[*]
- addPlayersWhoDodgeJetonCreature(idPlayer : Integer)
+ getPlayersWhoHavePlayMimetisme() : Integer[*]
- addPlayersWhoHavePlayMimetisme(idPlayer : Integer)
+ getPlayersWhoHavePlayPortail() : Integer[*]
- addPlayersWhoHavePlayPortail(idPlayer : Integer)
+ getPlayersWhoHavePlayRegeneration() : Integer[*]
- addPlayersWhoHavePlayRegeneration(idPlayer : Integer)
+ getPlayersWhoDodgeJetonCible() : Integer[*]
- addPlayersWhoDodgeJetonCible(idPlayer : Integer)
+ getPlayersWhoIsTargetRetraite() : Integer[*]
- addPlayersWhoIsTargetByRetraite(idPlayer : Integer)
+ getPlayersWhoHavePlayVolteFace() : Integer[*]
- addPlayersWhoHavePlayVolteFace(idPlayer : Integer)
+ getplayersWhoUseFjordInPreviousRound() : Integer[*]
- addplayersWhoUseFjordInPreviousRound(idPlayer : Integer)
+ ralliementIsActive() : boolean
- setRalliementIsActive(ralliementIsActive : boolean)
+ refugeIsActive() : boolean
- setRefugeIsActive(refugeIsActive : boolean)
+ isJetonArtemiaIsActive() : boolean
- disableJetonArtemia()
- enableJetonArtemia()
+ traqueCanResist() : boolean
- setTraqueCanResist(traqueCanResist : boolean)
+ traqueCanPickSurvivalCards() : boolean
- setTraqueCanPickSurvivalCards(traqueCanPickSurvivalCards : boolean)
- setJetonArtemiaIsActive(jetonArtemiaIsActive : boolean)
+ jetonArtemiaMadeLoseOneWillingness() : boolean
- setJetonArtemiaMadeLoseOneWillingness(jetonArtemiaMadeLoseOneWillingness : boolean)
+ rescuePawnCanMoveForward() : boolean
- setRescuePawnCanMoveForward(rescuePawnCanMoveForward : boolean)
+ jetonCibleCanBeOnTwoAdjacentPlaces() : boolean
- setJetonCibleCanBeOnTwoAdjacentPlaces(jetonCibleCanBeOnTwoAdjacentPlaces : boolean)
+ jetonCreatureCanBeOnTwoAdjacentPlaces() : boolean
- setJetonCreatureCanBeOnTwoAdjacentPlaces(jetonCreatureCanBeOnTwoAdjacentPlaces : boolean)
+ jetonArtemiaCanBeOnTwoAdjacentPlaces() : boolean
- jetonArtemiaCanBeOnTwoAdjacentPlaces(jetonArtemiaCanBeOnTwoAdjacentPlaces : boolean)
+ defaussePlaceCardsAreHidden() : boolean
- setDefaussePlaceCardsAreHidden(defaussePlaceCardsAreHidden : boolean)
+ canPlaceJetonCreatureOnPlaces6To10() : boolean
- setCanPlaceJetonCreatureOnPlaces6To10(canPlaceJetonCreatureOnPlaces6To10 : boolean)
+ survivalCardRalliementIsActive() : boolean
- setSurvivalCardRalliementIsActive(survivalCardRalliementIsActive : boolean)
+ survivalCardRefugeIsActive() : boolean
- setSurvivalCardRefugeIsActive(survivalCardRefugeIsActive : boolean)
+ canPlayTrackingCard() : boolean
- setCanPlayTrackingCard(canPlayTrackingCard : boolean)
+ inertieTrackingCardIsPlayed() : boolean
- setInertieTrackingCardIsPlayed(inertieTrackingCardIsPlayed : boolean)
+ isJetonCibleBlockPlace() : boolean
- setJetonCibleBlockPlace(jetonCibleBlockPlace : boolean)
+ isJetonCibleBlockAdjacentPlace() : boolean
- setJetonCibleBlockAdjacentPlace(jetonCibleBlockAdjacentPlace : boolean)
+ isJetonCibleAdjacentPlaceMoveTraque() : boolean
- setJetonCibleAdjacentPlaceMoveTraque(jetonCibleAdjacentPlaceMoveTraque : boolean)
}
....
TODO GameRoundVariables
TODO PowerApplicator
=== Item
......@@ -1019,17 +1292,79 @@ package player{
....
package power{
class Power{
- inGameIdPlayer : Integer
+ getInGameIdPlayer() : Integer
+ {abstract} getType() : PowerType
}
class PowerContainer{
enum PowerType{
MODIFICATOR
RECURRENT
}
package modifier{
class PowerModifier{
- modificatorType : PowerModifierType
- modifiedValue : Object
+ getModificatorType() : PowerModifierType
+ getModifiedValue() : Object
+ getType() : PowerType
}
enum PowerType{
CHOOSABLE_PLACE_CARD
PLAYABLE_PLACE_CARD
CHOOSABLE_VISIBLE_ADDITIONAL_PLACE_CARD
PLAYABLE_TRACKING_CARD
USE_FJORD_IN_PREVIOUS_ROUND
}
package modifier{
class PowerModifier{
- action : BiConsumer<Integer, Game>
- condition : BiPredicate<Integer, Game>
- apply(game : Game)
+ conditionIsTrue(game : Game) : Boolean
+ getType() : PowerType
}
}
PowerContainer "1" -- "*" Power
}
....
==== Phase
.Phase
[plantuml]
....
enum Phase{
PREPHASE_1
PHASE_1
POSTPHASE_1
PREPHASE_2
PHASE_2
POSTPHASE_2
PREPHASE_3
PHASE_3
POSTPHASE_3
PREPHASE_4
PHASE_4
POSTPHASE_4
}
....
==== Reserve
.Reserve
[plantuml]
....
class Reserve{
- placeCards : Map<Integer, Pair<PlaceCard, Integer>>
+ getNotEmptyPlaceCard() : PlaceCard[*]
+ copiesNumber(numberPlayer : Integer) : Integer
+ isNotEmpty() : Boolean
+ notEmpty(cardNumber : Integer) : Boolean
+ pick(cardNumber : Integer) : PlaceCard
- add(placeCard : PlaceCard)
}
....
=== Utilitary
.Package utilitary
......@@ -1048,13 +1383,12 @@ package utilitary{
class GameJoinRequest{
- playerId : String
- id : Integer
+ getPlayerID() : Integer
+ getPlayerID() : String
+ getId() : Integer
+ getType() : GameRequestType
}
}
class RequestConversion{
class Conversion{
- {static} DATABASE : NotAloneDatabase
+ {static} toPhase(s : String) : Phase
+ {static} toPhase(tphase : TPhaseId) : Phase
......@@ -1062,9 +1396,27 @@ package utilitary{
+ {static} toBoardColor(color : TColor) : BoardColor
+ {static} toBoardDistribution(s : String) : BoardDistribution
+ {static} toBoardDistribution(tBoard : TBoard) : BoardDistribution
+ {static} toCardType(s : String) : CardType
+ {static} toCardType(tCardType : String) : CardType
+ {static} toCard(tCard : TCard) : Card
+ {static} toPlaceCardList(cards : TCards[*]) : PlaceCard[*]
+ {static} toCardList(tCards : TCard[*]) : Card[*]
+ {static} toPlaceCardList(tPlaceCards : TCards[*]) : PlaceCard[*]
+ {static} toCardName(name : String) : CardName[*]
+ {static} toJetonSymbol(s : String) : JetonSymbol
+ {static} toPlacedJeton(tPlacedJeton : TPlacedJeton) : PlacedJeton
+ {static} toPlacedJetonList(tPlacedJetons : TPlacedJeton[*]) : PlacedJeton[*]
+ {static} toPlace(s : String) : Place
+ {static} toPlaceList(positionJeton : TPositionJeton) : Place[*]
+ {static} toPlaceList(strings : String[*]) : Place[*]
+ {static} toTPairType(name : String) : TPairType
+ {static} toAction(tAction : TAction) : Action
}
class Pair{
- key : T
- value : U
+ getKey() : T
+ getValue() : U
+ equals(obj : Object) : boolean
+ toString() : String
}
}
GameRequest <|-- GameJoinRequest
......@@ -1073,8 +1425,37 @@ GameRequest <|-- GameJoinRequest
== Handler
.Package utilitary
[plantuml]
....
package utilitary{
class GameServiceHandler{
- service : RoomService
+ createRoom(playerId : TPlayerId) : TRoomId
+ sendStartGame(playerId : TPlayerId, idCreature : Integer, TBoard : board, Tcolor : color, tPlaceCards : TCard[*]) : Response
+ joinRoom(playerId : TPlayerId, roomId : TRoomId) : Response
+ getGameDescription(playerId : TPlayerId) : Response
+ waitStartPhase(playerId : TPlayerId, phaseId : TPhaseId) : Response
+ sendFinishPhase(playerId : TPlayerId, phaseId : TPhaseId) : Response
+ sendPlayCards(playerId : TPlayerId, playerCards : TCard[*]) : Response
+ sendPlaceJetons(playerId : TPlayerId, placedJetons : TPlacedJeton[*]) : Response
+ sendResist(playerId : TPlayerId, number : Integer) : Response
+ sendGiveUp(playerId : TPlayerId) : Response
+ sendChooseAction(playerId : TPlayerId, actions : TAction) : Response
}
class PlayerServiceHandler{
+ ping() : boolean
- sendGameDescription(team : TplayerTeam, hand : THand, score : TScore, planet : TPlanet, reserve : TCardReserve[*], traquesInformation : TTraque[*], creatureInformation : TCreature)
- sendGameStart()
- sendFirstRoundStart()
- sendStartPhase(phaseId : TPhaseId, team : TPlayerTeam, hand : THand, score : TScore, planet : TPlanet, reserve : TCardReserve[*], traquesInformation : TTraque[*], creatureInformation : TCreature)
+ askAction(askedAction : TAskAction) : TAction
- sendActionWithoutExpectedResponse(askedAction : TAskAction)
}
}
....
......@@ -1087,34 +1468,6 @@ GameRequest <|-- GameJoinRequest
=== Player
.Divers
[plantuml]
....
enum Phase{
PREPHASE_1
PHASE_1
POSTPHASE_1
PREPHASE_2
PHASE_2
POSTPHASE_2
PREPHASE_3
PHASE_3
POSTPHASE_3
PREPHASE_4
PHASE_4
POSTPHASE_4
}
class Reserve{
- placeCards : Map<Integer, Pair<PlaceCard, Integer>>
- copiesNumber(playerNumber : Integer) : Integer
+ notEmpty(cardNumber : Integer) : Boolean
+ pick(cardNumber : Integer) : PlaceCard
}
....
== Game Server (example)
......@@ -1122,25 +1475,25 @@ class Reserve{
[plantuml]
....
interface GameServer {
createGame(numberOfPlayers : Integer): Integer
join(gameId : Integer): Integer
createGame(numberOfPlayers : Integer): Integer
join(gameId : Integer): Integer
}
package room {
class "GameServerController" as controller {
createGame(numberOfPlayers : Integer): Integer
join(gameId : Integer): Integer
}
class "Game \n[Thread]" as room {
id : Integer {id}
numberOfPlayers : Integer
}
class "Player" as player {
id : Integer {id}
}
GameServer <|-- controller
controller *- "[*] games" room : \t\t\t
room *-- "[0..7] players" player
class "GameServerController" as controller {
createGame(numberOfPlayers : Integer): Integer
join(gameId : Integer): Integer
}
class "Game \n[Thread]" as room {
id : Integer {id}
numberOfPlayers : Integer
}
class "Player" as player {
id : Integer {id}
}
GameServer <|-- controller
controller *- "[*] games" room : \t\t\t
room *-- "[0..7] players" player
}
note right of room: Uncompleted!
....
......@@ -1148,10 +1501,10 @@ note right of room: Uncompleted!
[plantuml]
....
state Game {
[*] --> Created
Created -> Started : start()
Started -> Phase1 : \t
Phase1 --> [*]
[*] --> Created
Created -> Started : start()
Started -> Phase1 : \t
Phase1 --> [*]
}
note right of Game : Uncompleted!
....
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment