model.managers

package model.managers

Members list

Packages

Type members

Classlikes

trait BaseManager[A]

Base trait for all managers in the simulation.

Base trait for all managers in the simulation.

Defines a fundamental contract for components that update a "slice" of the simulation state. Managers are designed to be functional, taking an input state and returning a new, updated state, promoting immutability.

Type parameters

A

The type of the state slice that this manager operates on.

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
case class CustomerBankrollManager[A <: CustomerState[A] & Bankroll[A] & Entity](games: List[Game]) extends BaseManager[Seq[A]]

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait BaseManager[Seq[A]]
class Object
trait Matchable
class Any
Show all
case class DecisionManager[A <: Bankroll[A] & BoredomFrustration[A] & CustomerState[A] & HasBetStrategy[A] & Entity & StatusProfile](games: List[Game]) extends BaseManager[Seq[A]]

Manages the decision-making process for customer entities within the casino simulation.

Manages the decision-making process for customer entities within the casino simulation.

This manager utilizes a configurable Decision Tree to determine customer actions based on their current state, risk profile, and game outcomes. It aims to provide realistic and complex AI behavior.

Type parameters

A

The type of customer entity this manager processes. It must possess Bankroll, BoredomFrustration, CustomerState, HasBetStrategy, Entity, and StatusProfile capabilities.

Value parameters

games

A list of all available games in the casino, used to access game states.

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait BaseManager[Seq[A]]
class Object
trait Matchable
class Any
Show all

An object responsible for updating the simulation environment after customer decisions have been made.

An object responsible for updating the simulation environment after customer decisions have been made.

This component handles "side effects" such as updating customer positions, changing their favorite games, and unlocking casino games, maintaining a functional separation from the core decision-making logic.

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
trait WeightedManager[C] extends BaseManager[C]

A manager that can be tuned using the * operator

A manager that can be tuned using the * operator

Type parameters

C

the customer concrete type

Attributes

Companion
object
Supertypes
trait BaseManager[C]
class Object
trait Matchable
class Any
Known subtypes

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type

Extensions

Extensions

extension [A](first: BaseManager[A])
def |(second: BaseManager[A]): BaseManager[A]

Chains two BaseManager instances together. The output of the first manager becomes the input of the second manager.

Chains two BaseManager instances together. The output of the first manager becomes the input of the second manager.

Value parameters

second

The second BaseManager in the chain.

Attributes

Returns

A new BaseManager that represents the sequential application of first then second.

extension [A](slice: A)
def |(manager: BaseManager[A]): A

Applies a BaseManager's update logic to the current state slice.

Applies a BaseManager's update logic to the current state slice.

Value parameters

manager

The BaseManager to apply.

Attributes

Returns

The updated state slice after applying the manager.