Skip to content

githubuser508/exposecatdata

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ExposeCatData

A Mewjector mod that exposes CatData fields to the GON ability system. Formula variables, X_is bindings, and Conditional_ gates are all usable from .gon.append files with no C code required.

Quick Start

  1. Install Mewjector v3.0+
  2. Drop ExposeCatData.dll into your mods/ folder
  3. Create a .gon.append mod that uses the new variables
  4. Launch the game — check mod_logs/ExposeCatData.txt to verify

Building from Source

Requires MSVC (Visual Studio Build Tools or full Visual Studio).

cl /LD /O2 /GS- /W3 /D_CRT_SECURE_NO_WARNINGS ExposeCatData.c /Fe:ExposeCatData.dll

Or use build.bat, which auto-detects your VS install via vswhere.


Formula Variables

Available anywhere the game evaluates a formula string (damage, cost, tooltip_values, etc.). These read from the casting cat's CatData at eval time.

Variable What Type Range
inbreeding Inbreeding coeff double 0.0 – 1.0
generation Generation count int 0+
sexuality Sexuality double 0.0 – 1.0
aggression Aggression double 0.0 – 1.0
libido Libido double 0.0 – 1.0
lover_attraction Lover attraction double 0.0+
hater_attraction Hater attraction double 0.0+
age Cat age int 0+

For enemies (no CatData), all variables resolve to 0.

Example: damage that scales with aggression:

damage_instance {
    damage "aggression * 20"
    elements [ Fire ]
}

X_is Bindings

Custom X_is targets for the ability system. Set in the target block. Same 8 names as the formula variables.

Doubles are multiplied by 100 and truncated to int (sexuality 0.73 → X=73). generation and age pass through as-is.

Example: spell damage scaling with sexuality via X:

target {
    X_is sexuality
    max_range 4+bonus_spell_range
}

damage_instance {
    damage "max(X/10,1)"
    elements [ Holy ]
}

Tooltip Values

Tooltip substitution uses {v0}, {v1}, etc. The formulas in tooltip_values have access to X just like damage formulas.

meta {
    desc "Deals {v0} damage based on gayness."
    tooltip_values ["max(X/10,1)"]
}

Conditionals

Custom Conditional_ names for ability effect gating. When a conditional fires, ExposeCatData evaluates it and either applies the child effects or skips them. These are based on the in-game UI labels applied by the vanilla game.

Conditional True when...
Conditional_IsLover Target is the caster's lover
Conditional_IsHater Target is the caster's hater
Conditional_HasLover Caster has a lover
Conditional_HasHater Caster has a hater
Conditional_IsInbred Caster's inbreeding > 0.1
Conditional_HighAggro Caster's aggression > 0.7
Conditional_LowAggro Caster's aggression < 0.3
Conditional_IsStraight Caster's sexuality < 0.1
Conditional_IsGay Caster's sexuality > 0.9

"Caster" is the source entity. "Target" is the owner entity. If either side has no CatData (enemies), the conditional returns false. Else blocks work normally.


Logging

Writes to mod_logs/ExposeCatData.txt. Check this file to verify the DLL loaded and your abilities are being picked up.


Notes

  • All custom names are registered with Mewjector's namespace registry. If another mod collides, both sides get a warning in their logs.
  • CatData fields are static during combat. X_is values are computed once at ability init and remain correct for the full fight.
  • Formula variables update every eval, so mid-combat changes to CatData (if any) would be reflected in formulas but not in X.

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors