Closed SokyranTheDragon closed 5 months ago
Not implemented, but something to consider - vanilla flyer iterates over all Ability comps and calls ICompAbilityEffectOnJumpCompleted.OnJumpCompleted
(if interface is implemented). However, since VFE abilities don't use comps it would need to be used in some other capacity. Perhaps do the same, but with Ability.abilityModExtensions
or AbilityDef.modExtensions
?
The
PawnFlyer
received some substantial changes in 1.5, specifically -PawnJumper
(previously DLC only feature) was (basically) merged withPawnFlyer
, no longer locking any of its features behind DLC, along with a multitude of other changes/improvements. Because of this, some of the changes in this PR will break existing mods and require them to update their implementations. Because the 1.5 update is not yet officially release, I felt that it's the perfect moment to introduce changes such as these. All the changes I've introduced, as well as extra details and explanations are below.Traverse to access effecters was removed:
DrawPosHeld
instead ofDrawPos
for itsSubEffecter
classesDrawPos
for itsSubEffecter
classes then they should be updated, as they will cause issues with vanilla/other modded flyers as wellSubEffecter
classes only allowing for spawning motes every X ticks - only allowing them to spawn in the wrong positionPosition calculations were removed:
DrawPos
- it can be changed in several ways:Verse.PawnFlyerWorker
subclass in C# (XML path:Defs\ThingDef\pawnFlyer\workerClass
, C# location:Verse.PawnFlyerProperties.workerClass
)DrawPos
property in C#Property for accessing
destCell
field:FieldRef
, so it should be fairly fast (especially when compared to operating onFieldInfo
or using Harmony'sTraverse
)FieldRef
is stored as a static field inAbilityPawnFlyer
itself, but could be moved outside if neededPawn respawn changes:
LandingEffects
/playing ofsoundLanding
sound, as vanilla will do it nowThing
, which doesn't necessarily have to be a pawnForced direction removed:
Save/reload bug fixed: