style naming conventions

Guide for style naming conventions

Combat Style Naming Conventions

Purpose

This document establishes the naming conventions for combat styles in Legends of Hastinapur, ensuring consistency and avoiding direct use of OSRS/RuneScape terminology.

Design Principles

1. Avoid OSRS Branding

  • Do not use exact OSRS style names (e.g., "Accurate", "Rapid", "Longrange")
  • Create thematic alternatives that convey the same meaning
  • Maintain functional equivalence with OSRS combat mechanics

2. Weapon-Appropriate Naming

  • Style names should reflect the weapon type
  • Use action verbs that make sense for the weapon (e.g., "Chop" for axes, "Snipe" for bows)
  • Avoid generic terms when weapon-specific alternatives exist

3. Clarity and Intuition

  • Names should be immediately understandable
  • Tooltips provide additional context
  • Avoid overly technical or obscure terms

Style Mappings

Underlying Combat Styles (Rust Enum)

These are the internal combat logic styles that affect stats:
pub enum Style {
    Accurate,    // +3 Attack bonus
    Aggressive,  // +3 Strength bonus
    Defensive,   // +3 Defense bonus
    Controlled,  // +1 to Attack, Strength, Defense
    Longrange,   // Increased attack range (Ranged/Magic)
}
Note: These internal names are acceptable because they're not user-facing.

User-Facing Style Names by Weapon Type

Unarmed Combat

UI NameInternal StyleCombat TypeDescription
PunchAccurateMeleeAccurate melee attack
KickAggressiveMeleeAggressive melee attack
BlockDefensiveMeleeDefensive blocking
Rationale:
  • Martial arts themed
  • Intuitive for hand-to-hand combat
  • No Controlled option (unarmed is simpler)

Sword Weapons (Swords, Scimitars, Daggers)

UI NameInternal StyleCombat TypeDescription
ChopAccurateMeleeAccurate cutting attack
SlashAggressiveMeleeAggressive slashing attack
LungeControlledMeleeControlled stabbing attack
BlockDefensiveMeleeDefensive parrying
Rationale:
  • Action verbs appropriate for bladed weapons
  • "Lunge" for Controlled (balanced training)
  • "Block" implies using weapon to parry

Axe Weapons (Axes, Hatchets)

UI NameInternal StyleCombat TypeDescription
ChopAccurateMeleeAccurate chopping attack
HackAggressiveMeleeAggressive hacking attack
SmashAggressiveMeleeAggressive smashing attack
BlockDefensiveMeleeDefensive blocking
Rationale:
  • Heavy weapon themed
  • Two Aggressive options (axes are damage-focused)
  • "Smash" conveys raw power

Bow Weapons (Bows, Shortbows, Longbows)

UI NameInternal StyleCombat TypeDescriptionOSRS Equivalent
PrecisionAccurateRangedPrecise shotAccurate
BurstAggressiveRangedFast firing speedRapid
SnipeLongrangeRangedIncreased rangeLongrange
Rationale:
  • Precision replaces "Accurate" - more descriptive for archery
  • Burst replaces "Rapid" - conveys speed without using OSRS term
  • Snipe replaces "Longrange" - thematic and clear
Design Notes:
  • "Burst" currently maps to Style::Aggressive but should ideally have its own Style::Rapid variant for attack speed bonus
  • No Defensive option for bows (consistent with OSRS)

Staff Weapons (Staves, Wands)

UI NameInternal StyleCombat TypeDescription
FocusAccurateMagicAccurate spellcasting
BarrageAggressiveMagicAggressive spellcasting
WardDefensiveMagicDefensive casting
Rationale:
  • Magic-themed terminology
  • "Focus" implies concentration for accuracy
  • "Barrage" suggests offensive power
  • "Ward" conveys magical protection

Generic Melee (Fallback)

UI NameInternal StyleCombat TypeDescription
AccurateAccurateMeleeAccurate attack
AggressiveAggressiveMeleeAggressive attack
DefensiveDefensiveMeleeDefensive stance
Rationale:
  • Fallback for unrecognized weapons
  • Generic terms acceptable since weapon type is unknown
  • 3 basic styles (no Controlled)

Future Weapon Types

Spears/Lances (Planned)

UI NameInternal StyleCombat TypeDescription
StabAccurateMeleeAccurate stabbing attack
ThrustAggressiveMeleeAggressive thrusting attack
ParryDefensiveMeleeDefensive parrying
SweepControlledMeleeControlled sweeping attack

Maces/Hammers (Planned)

UI NameInternal StyleCombat TypeDescription
PoundAccurateMeleeAccurate pounding attack
CrushAggressiveMeleeAggressive crushing attack
GuardDefensiveMeleeDefensive guarding

Crossbows (Planned)

UI NameInternal StyleCombat TypeDescription
AimAccurateRangedPrecise bolt shot
VolleyAggressiveRangedFast reloading
CoverLongrangeRangedIncreased range

Naming Guidelines

DO:

  • Use action verbs (Chop, Slash, Snipe)
  • Make names weapon-appropriate
  • Keep names concise (1-2 words)
  • Use tooltips for additional context
  • Test names with players for clarity

DON'T:

  • Copy OSRS names exactly
  • Use overly technical jargon
  • Create ambiguous names
  • Use names that don't match weapon type
  • Forget to update tooltips when changing names

Tooltip Conventions

Tooltips should follow this format:
Pattern: [Adjective] [weapon action/effect]
Examples:
  • "Accurate cutting attack" (Sword - Chop)
  • "Fast firing speed" (Bow - Burst)
  • "Defensive parrying" (Sword - Block)
Guidelines:
  • Start with adjective matching the internal style benefit
  • Describe the action or effect
  • Keep under 5 words
  • Be consistent across similar weapons

Localization Considerations

When adding localization support:
  1. Separate UI strings from logic:
    // Good
    name: localize("combat.style.punch"),
    
    // Bad
    name: "Punch".to_string(),
  2. Maintain style enum mapping:
    • Internal Style enum remains English
    • Only UI strings are localized
  3. Preserve tooltip clarity:
    • Ensure translations convey same meaning
    • Test with native speakers

Consistency Checklist

When adding a new weapon type:
  • Choose 3-4 style names appropriate for weapon
  • Map each name to correct internal Style
  • Write clear tooltip descriptions
  • Verify names don't conflict with OSRS
  • Test names with players for clarity
  • Update this document with new mappings
  • Add localization keys if applicable

References

  • OSRS Combat Styles: OSRS Wiki - Combat Options
  • Internal Style Enum: src/systems/combat/mod.rs (line 115)
  • Weapon Interface Implementation: src/systems/combat/weapon_styles.rs