Skip to content

Patch Anomalies Expected - #4637

Open
DarkByteZero wants to merge 12 commits into
CombatExtended-Continued:Developmentfrom
DarkByteZero:patch/anomalies-expected-ce
Open

Patch Anomalies Expected#4637
DarkByteZero wants to merge 12 commits into
CombatExtended-Continued:Developmentfrom
DarkByteZero:patch/anomalies-expected-ce

Conversation

@DarkByteZero

@DarkByteZero DarkByteZero commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Additions

  • CE compatibility for Anomalies Expected
  • AP and armor category on all custom damage defs
  • CE projectile, weapon, and tool conversions for the snow army content and the petrification boss
  • ToolCE on entity melee

Changes

none

References

none

Reasoning

  • mod ships custom damage defs with no AP and verbs that bypass CE

Alternatives

  • n/a

Testing

Check tests you have performed:

  • Compiles without warnings
  • Game runs without errors
  • (For compatibility patches) ...with and without patched mod loaded
  • Playtested a colony (specify how long)

- DamageDefs: Convert silent-fail PatchOperationReplace -> Add for AENitrogen / AENitrogenPlayer armorCategory (source defs do not declare the element). AEFreezing keeps Replace (source declares Blunt locally).
- Races_Entities: Convert ArmorRating_Sharp/Blunt (and Heat for BrokenStatue) Add -> per-stat Replace for all 6 entities (SnowMan, SnowGolem, SnowSpider, IceMantis, IceMan, BrokenStatue). Source defs already declare these stats, so Add was creating duplicates and producing warnings.
- Races_Entities: Remove canParry/maxParry from AE_SnowGolem RacePropertiesExtensionCE. CE convention restricts parry to Humanoid bipeds with weapon-arms; SnowGolem is Quadruped.
- Weapons_Ranged: Petrification Gun recoilAmount 2.80 -> 3 (CE convention for burst weapons).
- All 5 patch files wrapped in PatchOperationFindMod -> PatchOperationSequence to gate execution on Anomalies Expected being loaded.
@DarkByteZero
DarkByteZero requested review from a team as code owners June 25, 2026 00:47
@github-actions

Copy link
Copy Markdown

You can download the rebuilt assembly for this PR here: https://combatextended.lp-programming.com/CombatExtended-28139309910.zip

@github-actions github-actions Bot added the Download in Comments This PR has a zipfile download available. label Jun 25, 2026
AE_Bullet_Shell_SnowBlockAbility inherits Gun_AESnowBlock_Thrown but its own
projectile element needs the CE class attribute set explicitly, otherwise the
inherited armorPenetrationBlunt and dangerFactor fields fail XML parse.

Balance pass anchored against centipede (Sharp 20 Blunt 45 Durability 3660) and
scyther (4 / 6) instead of Metalhorror (HP 0.6 parasite). BrokenStatue moves
into centipede tier, SnowGolem above pikeman, IceMantis to scyther-light.
SnowSpider drops slightly to match its CP 40 swarmer role.
@github-actions

Copy link
Copy Markdown

You can download the rebuilt assembly for this PR here: https://combatextended.lp-programming.com/CombatExtended-28140580723.zip

Source def has no <comps> element. The Add op silently failed and dropped the
ArmorDurability comp. Use PatchOperationConditional to create <comps /> on
nomatch so the subsequent Add resolves.
@github-actions

Copy link
Copy Markdown

You can download the rebuilt assembly for this PR here: https://combatextended.lp-programming.com/CombatExtended-28140941061.zip

@github-actions

Copy link
Copy Markdown

You can download the rebuilt assembly for this PR here: https://combatextended.lp-programming.com/CombatExtended-28165397496.zip

@github-actions

Copy link
Copy Markdown

You can download the rebuilt assembly for this PR here: https://combatextended.lp-programming.com/CombatExtended-28182203697.zip

…s leaks

Bullet_AEPetrificationBeam was a vanilla Beam class projectile in source.
Convert to CombatExtended.Lasers.LaserBeamDefCE inheriting LaserBulletWhite,
the same way CE patches the vanilla Odyssey Beam Repeater. Keeps CE
ballistics and restores the beam visual via CE's laser graphic.

Bullet_AESnowBall, Bullet_AEIcicle, and Gun_AESnowBall_Thrown all inherited
thingClass=Bullet from BaseBullet/BaseProjectileSnowArmy with no override.
ProjectilePropertiesCE fields were silently no-op at runtime. Add explicit
thingClass=CombatExtended.BulletCE on each.

Gun_AESnowBlock siege weapon has isMortar=true and forcedMissRadius=3 but
was wired to Verb_ShootCE instead of Verb_ShootMortarCE. Switch the verb
class and add indirectFirePenalty plus canTargetLocations to match the
rocketswarm launcher pattern.

Add Class="CombatExtended.VerbPropertiesCE" to entity verb <li> elements so
CE-specific fields parse correctly.
@DarkByteZero
DarkByteZero force-pushed the patch/anomalies-expected-ce branch from 9e0384e to 6246fe2 Compare June 26, 2026 22:33
@github-actions

Copy link
Copy Markdown

You can download the rebuilt assembly for this PR here: https://combatextended.lp-programming.com/CombatExtended-28268992282.zip

- Drop CompProperties_ProjectileEffecter from Gun_AESnowBlock_Thrown
  and AE_Bullet_Shell_SnowBlockAbility. The comps validate against
  Verse.Projectile, and CombatExtended.ProjectileCE_Explosive isn't
  a subclass, so the effecters spammed config errors at load.
- Restore Weapon_AEGrenadeNitrogen's costList. Removing it left the
  recipeMaker without ingredients and triggered "smeltable but no
  smelt products."
- Drop forcedMissRadius from Gun_AESnowBlock. Verb_ShootMortarCE
  handles dispersion via stats; the vanilla check requires
  Projectile_Explosive subclass which CE doesn't satisfy.
@github-actions

Copy link
Copy Markdown

You can download the rebuilt assembly for this PR here: https://combatextended.lp-programming.com/CombatExtended-28333197826.zip

@N7Huntsman N7Huntsman left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are some things that need changing, and some overlooked content that still needs patched.

  • Get rid of the PatchOpFindMods. See my comment for details.
  • Some body parts with verbs (GrinderJaw and GrinderJawHidden) and armor values (ReflectiveSkin) still need patched.
  • New bodies need to be patched.
  • See other comments.

Comment thread ModPatches/Anomalies Expected/Patches/Anomalies Expected/DamageDefs.xml Outdated
Comment thread ModPatches/Anomalies Expected/Patches/Anomalies Expected/DamageDefs.xml Outdated
Comment thread ModPatches/Anomalies Expected/Patches/Anomalies Expected/DamageDefs.xml Outdated
Comment thread ModPatches/Anomalies Expected/Patches/Anomalies Expected/DamageDefs.xml Outdated
Comment thread ModPatches/Anomalies Expected/Patches/Anomalies Expected/Projectiles.xml Outdated
Comment thread ModPatches/Anomalies Expected/Patches/Anomalies Expected/Projectiles.xml Outdated
Comment thread ModPatches/Anomalies Expected/Patches/Anomalies Expected/Projectiles.xml Outdated
DarkByteZero added a commit to DarkByteZero/CombatExtended that referenced this pull request Jul 11, 2026
- Drop PatchOperationFindMod wrappers; LoadFolders gates the folder
- Remove DamageDefs.xml: AP_Damage_Teleport's worker teleports without
  dealing injuries, so armorCategory and defaultArmorPenetration were
  inert

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
DarkByteZero added a commit to DarkByteZero/CombatExtended that referenced this pull request Jul 11, 2026
- Drop PatchOperationFindMod wrapper; LoadFolders gates the folder
- Rescale archo connector and subcore hediff armor offsets to CE values

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

You can download the rebuilt assembly for this PR here: https://combatextended.lp-programming.com/CombatExtended-29150036397.zip

@github-actions

Copy link
Copy Markdown

You can download the rebuilt assembly for this PR here: https://combatextended.lp-programming.com/CombatExtended-29152336978.zip

- Drop PatchOperationFindMod wrappers; LoadFolders gates the folder
- Drop AENitrogenPlayer ops; it inherits from AENitrogen via ParentName
- Drop defaultArmorPenetration ops; AP is carried by ToolCE and
  ProjectilePropertiesCE on every delivery path
- Convert nitrogen shell to CE ammo and add it to the 81mm mortar
  ammoset, following the Deadlife shell handling
- Add CoveredByNaturalArmor to all six new entity bodies
- Patch grinder jaw VerbGiver tool to ToolCE (hidden variant inherits)
- Rescale reflective skin and destabilization hediff armor offsets
- Document that Gun_*_Thrown defs are projectiles despite the prefix
- Petrification repeater: PatchOperationMakeGunCECompatible replaces the
  vanilla verb, discarding the defaultProjectile redirect that
  Projectiles.xml applied to it. The CE verb then fired the vanilla
  Beam-classed projectile, which Verb_ShootCE cannot launch. Point the
  MakeGunCECompatible Properties at Bullet_AEPetrificationBeam_CE and
  drop the dead redirect.
- Snow golem siege shell: AE_Bullet_Shell_SnowBlockAbility inherited
  ProjectileCE_Explosive from its patched parent, but the mod's
  CompAbilityEffect_SpitLiquid and HediffComp_SnowBlockCompressor
  hard-cast the spawned thing to Verse.Projectile. Pin the vanilla
  Projectile_Explosive thingClass (same treatment CE gives the vanilla
  Bullet_Shell_AcidSpit) and keep its effecter comps, which are valid
  on the vanilla class.
DarkByteZero added a commit to DarkByteZero/CombatExtended that referenced this pull request Jul 11, 2026
- Drop PatchOperationFindMod wrapper; LoadFolders gates the folder
- Rescale archo connector and subcore hediff armor offsets to CE values
DarkByteZero added a commit to DarkByteZero/CombatExtended that referenced this pull request Jul 11, 2026
- Drop PatchOperationFindMod wrappers; LoadFolders gates the folder
- Remove DamageDefs.xml: AP_Damage_Teleport's worker teleports without
  dealing injuries, so armorCategory and defaultArmorPenetration were
  inert
@DarkByteZero
DarkByteZero force-pushed the patch/anomalies-expected-ce branch from a89f145 to dfd08d8 Compare July 11, 2026 17:45
@github-actions

Copy link
Copy Markdown

You can download the rebuilt assembly for this PR here: https://combatextended.lp-programming.com/CombatExtended-29162184855.zip

The def inherits Flame's ambient-damage handling from CE core. With the
mod's Sharp category, the ambient formula pits vanilla-scale penetration
against mm RHA sharp armor, so the fleshmass spitter siege buildings
dealt zero damage to any armored pawn. Heat matches CE core's handling
of the vanilla AcidBurn def.
@github-actions

Copy link
Copy Markdown

You can download the rebuilt assembly for this PR here: https://combatextended.lp-programming.com/CombatExtended-29162805192.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Download in Comments This PR has a zipfile download available.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants