Package epidemic.model
Class Agent
java.lang.Object
epidemic.model.Agent
- All Implemented Interfaces:
Inspectable
Abstrakcyjna klasa bazowa reprezentująca każdą autonomiczną encję zdolną do poruszania się
i uczestniczenia w procesie epidemicznym na mapie symulacji.
Centralizuje zarządzanie pozycją przestrzenną, statusem medycznym (HealthStatus)
oraz podstawowym cyklem życia biologicznym (wiek, reprodukcja, zgon).
Implementuje interfejs Inspectable na potrzeby dynamicznego GUI.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate intprivate doubleprivate doubleprivate Point2Dprivate booleanprivate HealthStatusprivate booleanprivate intprivate MovementStrategyprivate doubleprivate Point2Dprivate intprivate final SpeciesType -
Constructor Summary
ConstructorsConstructorDescriptionAgent(Point2D position, int age, SpeciesType speciesType, double baseSpeed, MovementStrategy movementStrategy) Inicjalizuje nowego agenta z podstawowymi parametrami biologicznymi. -
Method Summary
Modifier and TypeMethodDescriptionbooleanWeryfikuje podatność agenta na nową infekcję w obecnym kroku symulacji.voidZmniejsza wskaźnik żywotności wirusa w organizmie agenta.intgetAge()doubleprotected ColorgetColorForStatus(HealthStatus status) Mapuje enumerację HealthStatus na dedykowany obiekt koloru z pakietu AWT.doubleKonstruuje hierarchiczną listę właściwości telemetrycznych agenta, używanych przez warstwę widoku do renderowania paska bocznego.intZwraca nagłówek dla inspektora GUI w oparciu o przypisany gatunek.intdoubleZwraca zjadliwość agenta dla wariantu środowiskowego (bazując na rodzaju gatunku).doubleKalkuluje finalny współczynnik podatności jednostki na infekcję, na bazie domyślnych wartości z konfiguracji.voidInkrementuje licznik wieku agenta o jedną jednostkę.booleanisDead()booleanvoidsetCurrentSpeed(double currentSpeed) voidsetCurrentTarget(Point2D currentTarget) voidsetDead(boolean dead) voidsetDiedFromVirus(boolean diedFromVirus) voidsetHealthStatus(HealthStatus healthStatus) voidsetLastReproductionEpoch(int lastReproductionEpoch) voidsetMovementStrategy(MovementStrategy strategy) voidsetPosition(Point2D position) voidsetRemainingInfectionEpochs(int remainingInfectionEpochs) voidthink(WorldContext context) Polimorficzny punkt wywołania mechanizmów decyzyjnych (Kognitywistyka).
-
Field Details
-
position
-
currentTarget
-
baseSpeed
private double baseSpeed -
currentSpeed
private double currentSpeed -
movementStrategy
-
speciesType
-
age
private int age -
isDead
private boolean isDead -
naturalMortalityRate
private double naturalMortalityRate -
lastReproductionEpoch
private int lastReproductionEpoch -
remainingInfectionEpochs
private int remainingInfectionEpochs -
diedFromVirus
private boolean diedFromVirus -
healthStatus
-
-
Constructor Details
-
Agent
public Agent(Point2D position, int age, SpeciesType speciesType, double baseSpeed, MovementStrategy movementStrategy) Inicjalizuje nowego agenta z podstawowymi parametrami biologicznymi. Wartości takie jak status zdrowotny (HEALTHY) i wskaźniki umieralności są pobierane i ustawiane zgodnie z globalną konfiguracją (Config).- Parameters:
position- Początkowa koordynata przestrzenna na siatce mapy.age- Początkowy wiek jednostki.speciesType- Gatunek przypisany do jednostki, determinujący np. zjadliwość.baseSpeed- Prędkość przemieszczania się w warunkach normalnych.movementStrategy- Przypisana strategia poruszania się (wzorzec Strategy).
-
-
Method Details
-
getObjectName
Zwraca nagłówek dla inspektora GUI w oparciu o przypisany gatunek.- Specified by:
getObjectNamein interfaceInspectable- Returns:
- Zrozumiały dla użytkownika ciąg znaków identyfikujący encję.
-
getInspectionProperties
Konstruuje hierarchiczną listę właściwości telemetrycznych agenta, używanych przez warstwę widoku do renderowania paska bocznego. Metoda polimorficzna – może być nadpisywana przez klasy potomne. Dla agentów chorych (SICK/CARRIER) generowany jest dodatkowy pasek postępu infekcji.- Specified by:
getInspectionPropertiesin interfaceInspectable- Returns:
- Uporządkowana lista obiektów InspectionProperty.
-
getColorForStatus
Mapuje enumerację HealthStatus na dedykowany obiekt koloru z pakietu AWT. Używane do ujednoliconych wizualizacji na płótnie mapy i w oknie inspekcji.- Parameters:
status- Bieżący stan chorobowy agenta.- Returns:
- Skorelowany obiekt typu Color.
-
incrementAge
public void incrementAge()Inkrementuje licznik wieku agenta o jedną jednostkę. Częstotliwość wywoływania tej metody (np. co X epok) jest regulowana przez menedżerów. -
canBeInfected
public boolean canBeInfected()Weryfikuje podatność agenta na nową infekcję w obecnym kroku symulacji. Martwi agenci oraz nosiciele z aktywną fazą pełnoobjawową (SICK) są odrzucani.- Returns:
- Wartość true, jeśli agent spełnia fizjologiczne kryteria do zakażenia wirusem.
-
decrementInfectionTimer
public void decrementInfectionTimer()Zmniejsza wskaźnik żywotności wirusa w organizmie agenta. Chroni przed błędnym wyznaczeniem wartości poniżej zera. Osiągnięcie wartości minimalnej stanowi warunek przejścia do stanu ozdrowieńca (RECOVERED). -
think
Polimorficzny punkt wywołania mechanizmów decyzyjnych (Kognitywistyka). Domyślna implementacja w klasie bazowej nie wykonuje żadnych akcji (no-op).- Parameters:
context- Aktualny zestaw danych telemetrycznych środowiska.
-
getPosition
-
setPosition
-
getCurrentTarget
-
setCurrentTarget
-
getSpeciesType
-
getAge
public int getAge() -
getHealthStatus
-
setHealthStatus
-
isDead
public boolean isDead() -
setDead
public void setDead(boolean dead) -
getBaseSpeed
public double getBaseSpeed() -
getCurrentSpeed
public double getCurrentSpeed() -
setCurrentSpeed
public void setCurrentSpeed(double currentSpeed) -
getLastReproductionEpoch
public int getLastReproductionEpoch() -
setLastReproductionEpoch
public void setLastReproductionEpoch(int lastReproductionEpoch) -
isDiedFromVirus
public boolean isDiedFromVirus() -
setDiedFromVirus
public void setDiedFromVirus(boolean diedFromVirus) -
getRemainingInfectionEpochs
public int getRemainingInfectionEpochs() -
setRemainingInfectionEpochs
public void setRemainingInfectionEpochs(int remainingInfectionEpochs) -
getVulnerabilityMultiplier
public double getVulnerabilityMultiplier()Kalkuluje finalny współczynnik podatności jednostki na infekcję, na bazie domyślnych wartości z konfiguracji. Metoda jest zazwyczaj nadpisywana przez klasy potomne dla uwzględnienia odporności gatunkowej i odzieży.- Returns:
- Mnożnik szansy na infekcję (standardowo 1.0 dla zerowych bonusów ochronnych).
-
getMovementStrategy
-
setMovementStrategy
-
getVirulence
public double getVirulence()Zwraca zjadliwość agenta dla wariantu środowiskowego (bazując na rodzaju gatunku).
-