entity

package
v1.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 25, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type File

type File struct {
	Name        string
	Path        string
	Content     string
	Permissions os.FileMode
	Owner       string
	Group       string
	Size        int64
	ModTime     time.Time
	FileType    FileType
	IsHidden    bool
	Metadata    map[string]interface{}
}

File representa un archivo en el sistema de archivos virtual

func NewFile

func NewFile(name, path, content string) *File

NewFile crea un nuevo archivo con valores por defecto

func (*File) CanExecute

func (f *File) CanExecute(player *Player) bool

CanExecute verifica si el jugador puede ejecutar el archivo

func (*File) CanRead

func (f *File) CanRead(player *Player) bool

CanRead verifica si el jugador puede leer el archivo

func (*File) CanWrite

func (f *File) CanWrite(player *Player) bool

CanWrite verifica si el jugador puede escribir el archivo

func (*File) PermissionString

func (f *File) PermissionString() string

PermissionString devuelve el string de permisos estilo Unix

type FileType

type FileType int

FileType representa el tipo de archivo en el juego

const (
	FileTypeRegular    FileType = iota
	FileTypeLog                 // Contiene pistas o historia
	FileTypeKey                 // Llave para abrir sectores
	FileTypeConfig              // Configuración de sistema
	FileTypeDaemon              // Proceso enemigo
	FileTypeEncrypted           // Requiere decifrado
	FileTypeExecutable          // Puede ser ejecutado
)

type Folder

type Folder struct {
	Name        string
	Path        string
	Permissions os.FileMode
	Owner       string
	Group       string
	ModTime     time.Time
	IsHidden    bool
	IsLocked    bool   // Requiere una llave para entrar
	RequiredKey string // Nombre del archivo .key necesario
	Files       map[string]*File
	Subfolders  map[string]*Folder
	Parent      *Folder
	Metadata    map[string]interface{}
}

Folder representa un directorio en el sistema de archivos virtual

func NewFolder

func NewFolder(name, path string) *Folder

NewFolder crea un nuevo directorio

func (*Folder) AddFile

func (f *Folder) AddFile(file *File)

AddFile añade un archivo al directorio

func (*Folder) AddSubfolder

func (f *Folder) AddSubfolder(folder *Folder)

AddSubfolder añade un subdirectorio

func (*Folder) CanEnter

func (f *Folder) CanEnter(player *Player) bool

CanEnter verifica si el jugador puede entrar al directorio

func (*Folder) CanRead

func (f *Folder) CanRead(player *Player) bool

CanRead verifica si el jugador puede listar el directorio

func (*Folder) GetFile

func (f *Folder) GetFile(name string) (*File, bool)

GetFile obtiene un archivo por nombre

func (*Folder) GetSubfolder

func (f *Folder) GetSubfolder(name string) (*Folder, bool)

GetSubfolder obtiene un subdirectorio por nombre

func (*Folder) ListContents

func (f *Folder) ListContents(showHidden bool) ([]string, []string)

ListContents devuelve el contenido del directorio

func (*Folder) PermissionString

func (f *Folder) PermissionString() string

PermissionString devuelve el string de permisos estilo Unix

func (*Folder) RemoveFile

func (f *Folder) RemoveFile(name string) bool

RemoveFile elimina un archivo del directorio

func (*Folder) RemoveSubfolder

func (f *Folder) RemoveSubfolder(name string) bool

RemoveSubfolder elimina un subdirectorio

func (*Folder) ResolvePath

func (f *Folder) ResolvePath(path string) string

ResolvePath resuelve una ruta relativa o absoluta desde este directorio

type Game

type Game struct {
	State       GameState
	Player      *Player
	Processes   map[int]*Process
	CurrentTick int
	MaxTicks    int // Límite de tiempo opcional
	Messages    []string
	LastOutput  string
	NextPID     int
}

Game representa el estado global del juego

func NewGame

func NewGame() *Game

NewGame crea una nueva instancia del juego

func (*Game) AddMessage

func (g *Game) AddMessage(msg string)

AddMessage añade un mensaje al log del sistema

func (*Game) AddProcess

func (g *Game) AddProcess(p *Process)

AddProcess añade un proceso al juego

func (*Game) CheckDetection

func (g *Game) CheckDetection() bool

CheckDetection verifica si algún proceso detecta al jugador

func (*Game) GeneratePID

func (g *Game) GeneratePID() int

GeneratePID genera un nuevo PID único

func (*Game) GetActiveHostileProcesses

func (g *Game) GetActiveHostileProcesses() []*Process

GetActiveHostileProcesses devuelve los procesos hostiles activos

func (*Game) GetProcess

func (g *Game) GetProcess(pid int) (*Process, bool)

GetProcess obtiene un proceso por PID

func (*Game) RemoveProcess

func (g *Game) RemoveProcess(pid int) bool

RemoveProcess elimina un proceso

func (*Game) SpawnAntivirus

func (g *Game) SpawnAntivirus(location string) *Process

SpawnAntivirus crea un nuevo proceso antivirus

func (*Game) SpawnSentinel

func (g *Game) SpawnSentinel(location string) *Process

SpawnSentinel crea un nuevo proceso centinela en la ubicación actual

func (*Game) Tick

func (g *Game) Tick()

Tick avanza el tiempo del juego

type GameState

type GameState int

GameState representa el estado general del juego

const (
	GameStatePlaying GameState = iota
	GameStatePaused
	GameStateGameOver
	GameStateVictory
	GameStateMenu
)

type Player

type Player struct {
	Username       string
	PrivilegeLevel PrivilegeLevel
	CurrentPath    string
	AlertLevel     int      // 0-100, a 100 = Game Over
	Visibility     int      // 0-100, qué tan visible eres
	Keys           []string // Llaves recolectadas
	Inventory      []string // Items/archivos importantes
	CommandHistory []string
	Score          int
	Level          int
	UnlockedCmds   []string // Comandos desbloqueados
}

Player representa al jugador (el proceso intruso)

func NewPlayer

func NewPlayer() *Player

NewPlayer crea un nuevo jugador con valores iniciales

func (*Player) AddItem

func (p *Player) AddItem(item string)

AddItem añade un item al inventario

func (*Player) AddKey

func (p *Player) AddKey(keyName string)

AddKey añade una llave al inventario

func (*Player) AddNoise

func (p *Player) AddNoise(amount int)

AddNoise añade ruido al nivel de alerta

func (*Player) AddToHistory

func (p *Player) AddToHistory(cmd string)

AddToHistory añade un comando al historial

func (*Player) CanUseCommand

func (p *Player) CanUseCommand(cmd string) bool

CanUseCommand verifica si el jugador puede usar un comando

func (*Player) ElevatePrivilege

func (p *Player) ElevatePrivilege()

ElevatePrivilege sube el nivel de privilegios

func (*Player) GetPrompt

func (p *Player) GetPrompt() string

GetPrompt devuelve el prompt del jugador

func (*Player) HasItem

func (p *Player) HasItem(item string) bool

HasItem verifica si el jugador tiene un item

func (*Player) HasKey

func (p *Player) HasKey(keyName string) bool

HasKey verifica si el jugador tiene una llave específica

func (*Player) IsGameOver

func (p *Player) IsGameOver() bool

IsGameOver verifica si el juego terminó

func (*Player) IsVictory

func (p *Player) IsVictory() bool

IsVictory verifica si el jugador ganó

func (*Player) ReduceNoise

func (p *Player) ReduceNoise(amount int)

ReduceNoise reduce el nivel de alerta (esconderse)

func (*Player) SetPrivilege

func (p *Player) SetPrivilege(level PrivilegeLevel)

SetPrivilege establece un nivel de privilegios específico

func (*Player) UnlockCommand

func (p *Player) UnlockCommand(cmd string)

UnlockCommand desbloquea un nuevo comando

type PrivilegeLevel

type PrivilegeLevel int

PrivilegeLevel representa el nivel de privilegios del jugador

const (
	PrivilegeGuest PrivilegeLevel = iota
	PrivilegeUser
	PrivilegeAdmin
	PrivilegeRoot
)

func (PrivilegeLevel) String

func (p PrivilegeLevel) String() string

type Process

type Process struct {
	PID         int
	Name        string
	Owner       string
	CPU         float64
	Memory      float64
	State       ProcessState
	Type        ProcessType
	Location    string // Directorio donde "vive"
	DetectRange int    // Radio de detección en directorios
	Hostile     bool
	SpawnTime   time.Time
	Metadata    map[string]interface{}
}

Process representa un proceso del sistema (enemigo o aliado)

func NewAntivirusProcess

func NewAntivirusProcess(pid int, location string) *Process

NewAntivirusProcess crea un proceso antivirus

func NewProcess

func NewProcess(pid int, name string, processType ProcessType) *Process

NewProcess crea un nuevo proceso

func NewSentinelProcess

func NewSentinelProcess(pid int, name, location string) *Process

NewSentinelProcess crea un proceso centinela hostil

func (*Process) Activate

func (p *Process) Activate()

Activate activa el proceso (empieza a cazar)

func (*Process) CanDetect

func (p *Process) CanDetect(playerLocation string, alertLevel int) bool

CanDetect verifica si el proceso puede detectar al jugador en una ubicación

func (*Process) Deactivate

func (p *Process) Deactivate()

Deactivate desactiva el proceso

func (*Process) IsAlive

func (p *Process) IsAlive() bool

IsAlive verifica si el proceso sigue vivo

func (*Process) Kill

func (p *Process) Kill()

Kill termina el proceso

type ProcessState

type ProcessState int

ProcessState representa el estado de un proceso

const (
	ProcessStateSleep ProcessState = iota
	ProcessStateRunning
	ProcessStateScanning
	ProcessStateHunting
	ProcessStateTerminated
)

func (ProcessState) String

func (s ProcessState) String() string

type ProcessType

type ProcessType int

ProcessType representa el tipo de proceso

const (
	ProcessTypeSystem    ProcessType = iota
	ProcessTypeSentinel              // Enemigo que patrulla
	ProcessTypeFirewall              // Bloquea acceso
	ProcessTypeAntivirus             // Busca intrusos
	ProcessTypeLogger                // Registra actividad
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL