@startuml CocktailUse
header Cocktail use
hide footbox

actor Controller
participant Student as "student1: Student"
participant StudentActions as "studentActions: StudentActions"
participant Cocktail as "cocktail : Cocktail"
participant Room as "room: Room"
participant Student2 as "student2: Student"

Controller -> Student: use(cocktail)
activate Student

Student -> StudentActions: use(cocktail)
activate StudentActions

StudentActions -> Cocktail: use(student1)
activate Cocktail

Cocktail -> Student: getLocation()
activate Student

Student --> Cocktail: room
deactivate Student

Cocktail -> Room: revive()
activate Room

loop while NotRevivedAnyone
    Room -> Student2: revive()
    activate Student2
    Student2 --> Room: success
    deactivate Student2
end

alt success == true
    Room --> Cocktail: true
    ref over Cocktail: DeleteItem
else 
    Room --> Cocktail: false
end 
deactivate Room

Cocktail --> StudentActions
deactivate Cocktail
StudentActions --> Student
deactivate StudentActions
Student --> Controller
deactivate Student

@enduml