combatrounds

package
v0.9.7-combat-as-module.0 Latest Latest
Warning

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

Go to latest
Published: Jul 8, 2025 License: GPL-3.0 Imports: 23 Imported by: 0

README

Combat-Rounds Module

Traditional round-based combat system for GoMud.

Configuration

This module uses the main game configuration for timing:

  • Round duration is controlled by Timing.RoundSeconds in the main config
  • Combat style selection is controlled by GamePlay.CombatStyle

No module-specific configuration is required.

Features

  • Traditional MUD round-based combat
  • Multiple attacks per round based on speed difference
  • Flee mechanics with speed-based success chance
  • Consider command for evaluating opponents
  • GMCP round countdown display

Commands

  • attack <target> - Initiate combat with a target
  • flee - Attempt to escape from combat
  • consider <target> - Evaluate a potential opponent

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type RoundBasedCalculator

type RoundBasedCalculator struct{}

RoundBasedCalculator implements combat calculations for round-based combat

func NewRoundBasedCalculator

func NewRoundBasedCalculator() *RoundBasedCalculator

NewRoundBasedCalculator creates a new calculator instance

func (*RoundBasedCalculator) CalculateAttackCount

func (calc *RoundBasedCalculator) CalculateAttackCount(attacker, defender *characters.Character) int

CalculateAttackCount determines number of attacks per round

func (*RoundBasedCalculator) CalculateCriticalChance

func (calc *RoundBasedCalculator) CalculateCriticalChance(attacker, defender *characters.Character) bool

CalculateCriticalChance determines if an attack is critical

func (*RoundBasedCalculator) CalculateDamage

func (calc *RoundBasedCalculator) CalculateDamage(attacker, defender *characters.Character, weapon *items.Item) int

CalculateDamage computes damage for an attack

func (*RoundBasedCalculator) CalculateDefense

func (calc *RoundBasedCalculator) CalculateDefense(defender *characters.Character) int

CalculateDefense computes defensive value

func (*RoundBasedCalculator) CalculateHitChance

func (calc *RoundBasedCalculator) CalculateHitChance(attacker, defender *characters.Character) bool

CalculateHitChance determines if an attack hits

func (*RoundBasedCalculator) CalculateInitiative

func (calc *RoundBasedCalculator) CalculateInitiative(actor *characters.Character) int

CalculateInitiative determines action order

func (*RoundBasedCalculator) PowerRanking

func (calc *RoundBasedCalculator) PowerRanking(attacker, defender *characters.Character) float64

PowerRanking calculates relative power between actors

type RoundBasedCombat

type RoundBasedCombat struct {
	// contains filtered or unexported fields
}

RoundBasedCombat implements the traditional round-based combat system

func NewRoundBasedCombat

func NewRoundBasedCombat(plug *plugins.Plugin) *RoundBasedCombat

NewRoundBasedCombat creates a new round-based combat system

func (*RoundBasedCombat) GetCalculator

func (rbc *RoundBasedCombat) GetCalculator() combat.ICombatCalculator

GetCalculator returns the combat calculator

func (*RoundBasedCombat) GetName

func (rbc *RoundBasedCombat) GetName() string

GetName returns the name of this combat system

func (*RoundBasedCombat) GetTimer

func (rbc *RoundBasedCombat) GetTimer() combat.ICombatTimer

GetTimer returns the combat timer

func (*RoundBasedCombat) Initialize

func (rbc *RoundBasedCombat) Initialize() error

Initialize sets up the combat system

func (*RoundBasedCombat) ProcessCombatRound

func (rbc *RoundBasedCombat) ProcessCombatRound()

ProcessCombatRound handles combat for all actors

func (*RoundBasedCombat) Shutdown

func (rbc *RoundBasedCombat) Shutdown() error

Shutdown cleanly shuts down the combat system

type RoundBasedTimer

type RoundBasedTimer struct {
	*combat.BaseTimer
	*combat.PlayerTracker
	// contains filtered or unexported fields
}

RoundBasedTimer tracks combat rounds and sends GMCP updates

func NewRoundBasedTimer

func NewRoundBasedTimer(c *RoundBasedCombat) *RoundBasedTimer

NewRoundBasedTimer creates a new round-based timer

func (*RoundBasedTimer) AddPlayer

func (rt *RoundBasedTimer) AddPlayer(userId int)

AddPlayer adds a player to combat tracking and starts timer if needed

func (*RoundBasedTimer) RemovePlayer

func (rt *RoundBasedTimer) RemovePlayer(userId int)

RemovePlayer removes a player from combat tracking and stops timer if needed

func (*RoundBasedTimer) Start

func (rt *RoundBasedTimer) Start() error

Start implements ICombatTimer

func (*RoundBasedTimer) Stop

func (rt *RoundBasedTimer) Stop() error

Stop implements ICombatTimer

Jump to

Keyboard shortcuts

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