Skip to main content

3d-combat-systems

Enforces 3D physics-based combat patterns for Black Trigram including Rapier physics, collision detection, attack/defense mechanics, damage calculations, hitbox accuracy, and realistic Korean martial arts combat in Three.js environments.

Informations de source

Dépôt
Hack23/blacktrigram
Dernière activité de la source
6 février 2026 à 10:41
Langue détectée de SKILL.md
anglais
Étoiles
8
Forks
7

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
3d-combat-systems
description
Enforces 3D physics-based combat patterns for Black Trigram including Rapier physics, collision detection, attack/defense mechanics, damage calculations, hitbox accuracy, and realistic Korean martial arts combat in Three.js environments.
license
MIT
# 3D Combat Systems Skill ## Purpose Ensures all 3D combat in Black Trigram uses proper physics-based mechanics, accurate collision detection, realistic damage calculations based on Eight Trigrams and vital points, and creates immersive Korean martial arts combat experiences in Three.js with @react-three/rapier. ## When to Apply **Automatically trigger when:** - Implementing physics-based combat with Rapier - Creating collision detection systems - Implementing attack/defense mechanics - Calculating damage from strikes - Creating hitboxes or hurtboxes - Implementing blocking or parrying - Adding knockback or stagger effects - Testing combat balance ## Core Principles ### 1. Physics-Based Combat with Rapier ✅ **Proper Rapier Integration** ```typescript import { RigidBody, CuboidCollider } from '@react-three/rapier'; export const CombatCharacter: React.FC<CharacterProps> = ({ position, stance, onHit, }) => { return ( <RigidBody type="dynamic" position={position} userData={{ type: 'character', stance }} onCollisionEnter={(event) => { if (event.other.rigidBody?.userData?.type === 'attack') { const damage = calculateDamage(stance, event); onHit?.(damage); } }} > <mesh castShadow receiveShadow> <capsuleGeometry args={[0.5, 1.6, 16, 32]} /> <meshStandardMaterial color={getStanceColor(stance)} /> </mesh> <CuboidCollider args={[0.5, 1, 0.5]} /> </RigidBody> ); }; ``` ### 2. Hitbox and Hurtbox System ✅ **Accurate Collision Zones** ```typescript export const CombatHitboxes: React.FC = () => { return ( <group> {/* Head hitbox - critical */} <CuboidCollider args={[0.15, 0.15, 0.15]} position={[0, 1.8, 0]} sensor onIntersectionEnter={(event) => { handleVitalPointHit('head', event); }} /> {/* Torso hitbox - vital organs */} <CuboidCollider args={[0.3, 0.5, 0.2]} position={[0, 1.2, 0]} sensor onIntersectionEnter={(event) => { handleVitalPointHit('torso', event); }} /> </group> ); }; ``` ### 3. Damage Calculation System ✅ **Comprehensive Damage Formula** ```typescript export function calculateCombatDamage( attacker: CombatEntity, defender: CombatEntity, strikeData: StrikeData ): DamageResult { // Base damage from technique const baseDamage = strikeData.technique.baseDamage; // Trigram matchup multiplier const stanceMultiplier = getTrigramAdvantage( attacker.stance, defender.stance ); // Vital point multiplier const vitalMultiplier = strikeData.vitalPoint ? getVitalPointMultiplier(strikeData.vitalPoint, attacker.stance) : 1.0; // Defense calculation const defenseValue = defender.isBlocking ? defender.defense * 2.0 : defender.defense; // Final damage const rawDamage = baseDamage * stanceMultiplier * vitalMultiplier; const finalDamage = Math.max(0, rawDamage - defenseValue); return { damage: finalDamage, isCritical: vitalMultiplier > 2.0, isBlocked: defender.isBlocking && finalDamage < rawDamage * 0.5, }; } ``` ## Enforcement Rules ### Rule 1: Physics-Based Combat ``` IF (combat uses direct position manipulation OR no physics engine) THEN (implement Rapier physics with proper collision detection) ELSE (verify realistic force application) ``` ### Rule 2: Hitbox Accuracy ``` IF (hitboxes don't match character anatomy OR too large/small) THEN (create anatomically accurate collision zones) ELSE (verify vital point hitbox placement) ``` ### Rule 3: Damage Calculation Determinism ``` IF (damage uses Math.random() OR non-deterministic factors) THEN (use deterministic formula with stance/vital point multipliers) ELSE (verify damage is reproducible) ``` ## Anti-Patterns to REJECT ❌ **Random Damage** - No Math.random() in combat calculations ❌ **Single Hitbox** - Need separate zones for head/torso/limbs ❌ **No Physics** - Must use Rapier for realistic combat ❌ **Instant Hits** - Attacks should have travel time and collision ## Compliance Framework - **ISO 27001 A.12.1**: Operational procedures for combat systems - **NIST CSF PR.DS**: Data integrity in combat state - **CIS Control 16**: Secure application patterns ## Remember **물리 기반 전투 (Physics-Based Combat)** Realistic Korean martial arts combat requires proper physics simulation, accurate hitboxes, and deterministic damage calculations. **흑괘의 길을 걸어라** - _Walk the Path of the Black Trigram_
Voir sur GitHub