TaczAttributeAdd

A mod that provides dynamic player attributes for Tacz.

45,25k

TaczAttributeAdd

TAA Mod - Tacz Attribute Enhancement Mod

Attribute System

Damage Attributes

- Universal Firearm Damage: `taa:bullet_gundamage` - Base damage bonus for all firearms

Firearm-Specific Damage Attributes

- Launcher: `taa:bullet_gundamage_pistol` - Pistol-specific damage bonus - Launcher: `taa:bullet_gundamage_rifle` - Rifle-specific damage bonus - Launcher: `taa:bullet_gundamage_shotgun` - Shotgun-specific damage bonus - Launcher: `taa:bullet_gundamage_sniper` - Sniper rifle-specific damage bonus - Launcher: `taa:bullet_gundamage_smg` - Submachine gun-specific damage bonus - Launcher: `taa:bullet_gundamage_lmg` - Light machine gun-specific damage bonus - Launcher: `taa:bullet_gundamage_launcher` - Launcher-specific damage bonus (e.g., RPGs)

Core Firearm Attributes (20 Total)

- Bullet Count: `taa:ads_time` - Aim speed bonus (lower = faster) - Bullet Count: `taa:ammo_speed` - Bullet velocity bonus - Bullet Count: `taa:armor_ignore` - Armor penetration capability - Bullet Count: `taa:effective_range` - Maximum effective shooting distance - Bullet Count: `taa:move_speed` - Firearm movement speed reduction - Bullet Count: `taa:headshot_multiplier` - Headshot damage multiplier - Bullet Count: `taa:knockback` - Bullet knockback force - Bullet Count: `taa:pierce` - Bullet entity penetration count - Bullet Count: `taa:rounds_per_minute` - Rounds per minute rate - Bullet Count: `taa:recoil` - Firearm recoil reduction - Bullet Count: `taa:inaccuracy` - Bullet spread reduction (lower = better) - Bullet Count: `taa:weight` - Firearm weight reduction (lower = better) - Bullet Count: `taa:magazine_capacity` - Magazine size bonus - Bullet Count: `taa:reload_time` - Reload speed bonus - Bullet Count: `taa:melee_damage` - Melee attack power bonus - Bullet Count: `taa:melee_distance` - Melee attack range bonus - Bullet Count: `taa:bullet_count` - Projectiles per shot bonus

Special Effects

- Ignite: `taa:silence` - Silencing effectiveness (<1.0 activates passive silencing) - Ignite: `taa:ignitefire` - Bullet fire ignition chance

Explosive System

- Explosion Delay: `taa:explosion_radius` - Blast radius bonus - Explosion Delay: `taa:explosion_damage` - Blast damage bonus - Explosion Delay: `taa:explosion_knockbacknew` - Blast knockback - Explosion Delay: `taa:explosion_destroy_blocknew` - Block destruction capability - Explosion Delay: `taa:explosion_delay` - Blast delay time

Accessory Modifier System

- Bullet Count: `melee_damage` - Melee attack damage - Bullet Count: `melee_distance` - Melee effective range - Bullet Count: `magazine_capacity` - Magazine capacity - Bullet Count: `reload_time` - Reload time - Bullet Count: `bullet_count` - Projectiles per shot

Attribute Value Specifications

- Passive Activation: 1.0 (100% effect) - Passive Activation: - Example: 0.5 = 50% increase (final multiplier = 1.0 + 0.5 = 1.5x) - 1.0 = 100% increase (no additional effect) - Passive Activation: 0.0 = false, 1.0 = true - Passive Activation: Attributes like silencing automatically trigger conditions (<1.0)

Damage Calculation Modes

Configurable Modes (via `taa-attributes.toml`):

1. MAX Mode (Default) - Formula: `Math.max(base_damage, specific_damage)` - Selects higher value between base and firearm-specific damage

2. ADDITIVE Mode - Formula: `base_damage + specific_damage - 1.0` - Combines values while preserving base damage

3. MULTIPLICATIVE Mode - Formula: `base_damage * specific_damage` - Multiplies base and firearm-specific damage

Technical Implementation

Core Components

- `PropertyCalculator`: Handles all attribute calculations - `PlayerAttributeHelper`: Retrieves player attributes - `PropertyCacheUpdater`: Updates calculated values in attachment cache - `GunPropertiesInitializer`: Dynamically initializes firearm properties - `AttributeConfig`: Manages configuration settings - `GunTypeContext`: Tracks current firearm type context

Client/Server Architecture

- Client Safety: - UI methods annotated with `@OnlyIn(Dist.CLIENT)` - Client-side mixins configured in `taa.mixins.json` - No server-side client code execution

- Data Consistency: - Modifiers fully compatible with TACZ accessory system - Calculations performed server-side - Attribute updates via standard `AttachmentPropertyManager`

Calculation Workflow

1. Event trigger during firearm attribute processing 2. Firearm type identification via Tacz API 3. Context setup in `GunTypeContext` 4. Mode-based calculation execution 5. Cache update with new values 6. TACZ system applies final attributes

Compatibility & Configuration

Accessory System

- 5 new modifier types compatible with TACZ accessories: - Melee damage - Melee range - Magazine capacity - Reload time - Bullet count - Standardized implementation for cross-mod compatibility

ADS