Ludeon Forums

RimWorld => Mods => Releases => Topic started by: ilikegoodfood on July 30, 2019, 06:22:37 AM

Title: [1.0] Verb Expansion Framework (v1.1.5)
Post by: ilikegoodfood on July 30, 2019, 06:22:37 AM
Verb Expansion Framework

Public Service Announcement
Work on a completely refactored Verb Expansion Framework 2.0 is likely to commence soon(TM).
Soon looks like some time next month Please remember thatit will take considerable time to developel this release, especially with the new changes Tynana has implemented in the code-base.
It will  not be released by myself as I am handing VEF off Erdelf, an increadibly skilled and dedicated RimWorld modder.

About:

The Verb Expansion Framework was initially conceived of as a complete re-implementation of the Range Animal Framework (https://ludeon.com/forums/index.php?topic=38290.0). This initial release has succeeded in that goal, along with a handful of other enhancements.
The long term goal is to provide a broadly increased combat scope, making violence on the Rim more varied, tactical and exotic, than ever before.

Features:

Details:
For full information and documentation, please use the github wiki (https://github.com/ilikegoodfood/VerbExpansionFramework/wiki).

Installation and Compatibility:
The Verb Expansion Framework does not come with any additional content, only utilities for other mods to add content. You will only need to load VEF as a dependancy for another mod.
If you do need to load VEF as a dependancy, it must be loaded between Core and the all mods that are dependant on it. I would recommend placing it high up in the load order, among the other frameworks, such as HugsLibs and JecsTools.


This mod should be compatible with any mod, so long as it doesn't alter the way that equipment, hediffs or ranged verbs work.
Before installing this mod into your precious saved game, load it into your mod-list and attempt to create a new game. Run some basic combat tests and if it produces errors that you do not normally see, report them and discontinue use of the framework with that mod-list.

Downloads:
For RimWorld 1.0
SteamWorkshop (https://steamcommunity.com/sharedfiles/filedetails/?id=1819780093)
GitHub (Direct Download) (https://github.com/ilikegoodfood/VerbExpansionFramework/releases)
Title: Re: [1.0] Verb Expansion Framework (v1.0)
Post by: ilikegoodfood on July 30, 2019, 06:22:53 AM
Changelog:
Version 1.1.5:
New Features:
- Implemented VEF_Verb_Explode, VEF_Verb_ExplodeSafe and VEF_Verb_SelfDestruct.
- Implemented VEF_VerbProperties_Explode to support the verb classes.
- Implemented smokepopSound to the SmokepopDefense comps, allowing modders to set what SoundDef is used on the smokepop event.

Version 1.1.4:
New Features:
- HediffSets allow you to lock powerful bonuses behind a list of prerequisite hediffs.
- Verb_ShootBody is an alternative to Verb_Shoot that modifies the damage output based on the bodysize of the pawn firing the verb.

Bugfixes
- Nothing specific, but a bunch of minor and ongoing code improvements.

Version 1.1.3:
Bugfixes
- Myriad small fixes involving the Squad Attack Gizmos.

Compatibility
- Compatibility patch for Cybernetic Warfare's WargearToggle Comp (VEF's gizmo takes over).

Verb Labels
I have discovered that verbs with their own labels must have those labels defined in the language data for your mod. Make sure that the verb's label shows up correctly in game.

Version 1.1.2:
Bugfixes/Compatibility
- Fixed null errorr for pawn that do not inherit comps from Pawn.
- This fixes A RimWorld of Magic's Minions!

Version 1.1.1e:
New Features:
- Implements HealthModifier HediffComp (Legacy), HealthModifier Capacity and HealthModifierFactor Capacity.

Compatibility:
- Reworked out mod-compatibility is set up internally, allowing for faster, more stable, development of mod compatibility.
- Fixed null error in compatibility feature for rollo's DualWield.
- Fixed issues with compatibility for dll-only mods.

Standalone Frameworks:
The Verb Expansion Framework is a large and powerful framework that modifies the selection and use of ranged Verbs on a large scale. In addition to this core foundation, it provides a number of HediffComp and ThingComp sets that would function perfectly well on their own.
Since there are many mods that would benefit from these minor features and that do not require the core features of VEF, it makes sense to split these features into mini-frameworks. I have been working may through the already implemented features creating standalone version that are compatible with each other and with VEF.
Expect these standalone frameworks to become available soon.

Ongoing Work:
I have also been doing extensive work and experimentation with how these frameworks interact in order to minimise any performance impact and i have been examining the inner workings of the shieldbelt system, which is very complex, in order to try and offer Hediff compatible and race definition compatible versions of it. It is vitally important to me that these features interact with each other in a sensible way, try to maintain the core balance of RimWorld and are as mod compatible as humanly possible.
That said, I have had to slow down development, as this has been a manic five weeks for me. I have put in an average of 70 hours of work to this framework each week, to an estimated total of 350 hours in just over a month. Development has not stopped and is continuing, but hopefully at a more sustainable pace.

Version 1.1.0c:
New Features:
- Smokepop Defense HediffComp and ThingComp

Compatibility:
- Partial compatibility for Combat Extended (https://ludeon.com/forums/index.php?topic=33461.0). See the wiki for details. (https://github.com/ilikegoodfood/VerbExpansionFramework/wiki/Using-VEF#combat-extended-compatibiltiy-partial)

Bugfixes:
- Fixed compatibility for the Range Animal Framework (https://ludeon.com/forums/index.php?topic=38290.0).
- Fixed Melee attacks triggering Smokepop Belts and Smokepop Defense.
- Fixed null errors on Gizmo as a result of sudden changes in pawn staus (being downed, killed or loosing their weapon)
- Fixed null error in Squad Attack Gizmo Prefix.
- Created a special case for the BattleLog Entry that handles instances where it is no longer possible to determine what weapon was used, such as the pawn being downed or killed between firing the shot and the shot landing.
- Fixed missing 'static' on RangeAnimalFramework compatibility feature.
- Fixed missing `static` on Range Animal Framework compatibility feature.
- Fixed naming errors on Range Animal Framework compatibility features.

Version 1.0.3c:
Bugfixes:
- Resolved crippling null error involving melee weapons and the Verb Gizmo.
- Fixed harmless null error in Battle Log for explosions.
- Fixed harmless null error in Battle Log for certain weapon combinations.
- Fixed Smokepop Belts not being triggered by verbs from other sources.
- Fixed null error that was introduced in recent Gizmo changes.

Version 1.0.2:
Compatibility
- Added compatibility for Range Animal Framework (https://ludeon.com/forums/index.php?topic=38290.0).
- If both VEF and the Range Animal Framework are enabled, VEF will now take over all of the required functions automatically.
- Mod makers are still encouranged to update to VEF from the Range Animal Framework.

Version 1.0.1b:
Compatibility
- Now compatible with roolo's DualWield (https://steamcommunity.com/sharedfiles/filedetails/?id=1628211313&searchtext=Dual+Wield)
- Pawns only dual wield if their primary equipment is selected as their current verb.
- If a pawn's current verb is their primary equipment, it correctly displays the dual wielding icon.

Bugfixes:
- Fixed console spam.
- Fixed Capitalization of labels.
- Fixed ExamplePatches.xml
- Fixed off-hand weapon being drawn over squad attack gizmo.
- Fixed squad attack gizmo not correctly switching to 'squad attack with equipment' when some selected pawns had non-equipment verbs set as primary.

Polish Features
- Provided utility for verb-specific labels.
Title: Re: [1.0] Verb Expansion Framework (v1.0)
Post by: ilikegoodfood on July 30, 2019, 06:23:14 AM
RESERVED
Title: Re: [1.0] Verb Expansion Framework (v1.0)
Post by: ilikegoodfood on July 30, 2019, 06:23:26 AM
RESERVED
Title: Re: [1.0] Verb Expansion Framework (v1.0)
Post by: SargBjornson on July 30, 2019, 07:01:32 AM
Heeeey, awesome! Did you perchance test it with one of the animal mods? I'd love to add multiple ranged attacks per creature :)
Title: Re: [1.0] Verb Expansion Framework (v1.0)
Post by: ilikegoodfood on July 30, 2019, 07:06:30 AM
I haven't tested it with meod that incorporate the old Range Animals Framework, since they may conflict, but I do know for a fact that it correctly handles multiple ranged verbs on AI, using a modified DPS calculation to select the best verb available for that instance.
If you give an animal a verb that is very accurate at short range, but terrible at long range and one that is the other way around, it will switch between them as the target moves closer, so long as the accuracy change effects the DPS enough.

EDIT: They do indeed conflict.
Fortunately, they require very similar setup for the verbs on the animals, so it shouldn't be too difficult to remove the dependancy on the Range Animal Framework, and switch over to VEF.
Title: Re: [1.0] Verb Expansion Framework (v1.0)
Post by: SargBjornson on July 30, 2019, 07:30:35 AM
Awesome, I'll run some tests and switch over!
Title: Re: [1.0] Verb Expansion Framework (v1.0)
Post by: ilikegoodfood on July 30, 2019, 07:39:44 AM
I have succesfully converted Monster Mash over to VEF. I had to change the projectile thingClass back to normal, change the projectile parents, and remove the JobDefOf added by the Range Animal Framework, and I think that was it.

I'm not going to release the conversion yet, as I want to do an extensive overhaul of Monster Mash after implementing some additional features into VEF.
Title: Re: [1.0] Verb Expansion Framework (v1.0.3)
Post by: ilikegoodfood on August 02, 2019, 06:47:18 AM
This one's kind of important, so I'm posting an update message to bump this thread:

Bugfixes:
- Resolved crippling null error involving melee weapons and the Verb Gizmo.
- Fixed harmless null error in Battle Log for explosions.
- Fixed harmless null error in Battle Log for certain weapon combinations.
Title: Re: [1.0] Verb Expansion Framework (v1.1.0)
Post by: ilikegoodfood on August 04, 2019, 10:17:01 AM
My most major update yet is now out, bringing us to version 1.1.0:
Title: Re: [1.0] Verb Expansion Framework (v1.0)
Post by: Chibisuke on August 05, 2019, 04:05:43 AM
Quote from: SargBjornson on July 30, 2019, 07:30:35 AM
Awesome, I'll run some tests and switch over!
cant wait!!!
Title: Re: [1.0] Verb Expansion Framework (v1.1.3)
Post by: ilikegoodfood on August 21, 2019, 11:31:58 AM
Version 1.1.3 is yet another bug hunting exercise.

This one fixes interactions with Cybernetic Warfare's WargearToggle Comp as well as a number of issues with the squad attack gizmos.
Title: Re: [1.0] Verb Expansion Framework (v1.1.3)
Post by: SargBjornson on August 21, 2019, 12:04:50 PM
I still haven't had time to adapt my mods :( One question, some people have complained that the old framework ignored shield belts, have you perchance tested with that?
Title: Re: [1.0] Verb Expansion Framework (v1.1.4)
Post by: ilikegoodfood on August 29, 2019, 05:16:04 AM
Version 1.1.4 puts us firmly back on track for producing new content, with the arrival of HediffSets and Verb_ShootBody, as well as myriad tiny code improvements.
Title: Re: [1.0] Verb Expansion Framework (v1.1.5)
Post by: ilikegoodfood on September 06, 2019, 05:14:28 AM
VEF verin 1.1.5 brings us new ways to murder on the Rim, with the introduction of three new verbs that all produce explosions centred on te user; VEF_Verb_Explode, VEF_Verb_ExplodeSafe and VEF_Verb_SelfDestruct. These new verbs are fascilitated with the new VEF_VerbProperties_Explode class.

Also implemented a smokepopSound field into the smokepopDefense comps so gthat you can assign custom sounds.
Title: Re: [1.0] Verb Expansion Framework (v1.1.5)
Post by: ilikegoodfood on February 17, 2020, 06:58:16 AM
Public Service Announcement:
Work on a completely refactored Verb Expansion Framework 2.0 is likely to commence soon(TM).
Soon looks like some time next month Please remember thatit will take considerable time to developel this release, especially with the new changes Tynana has implemented in the code-base.
It will  not be released by myself as I am handing VEF off Erdelf, an increadibly skilled and dedicated RimWorld modder.
Title: Re: [1.0] Verb Expansion Framework (v1.1.5)
Post by: SargBjornson on February 17, 2020, 07:59:24 AM
We want a DLL :)
Title: Re: [1.0] Verb Expansion Framework (v1.1.5)
Post by: ilikegoodfood on February 17, 2020, 02:43:20 PM
Quote from: SargBjornson on February 17, 2020, 07:59:24 AM
We want a DLL :)

This is a major framework akin to the Alien Race framework, Jec's Tools and the others. DLL mods lead to issues with ompatibility, load order, and update cycles, as well as prevent a wide variety of things from being done safely. Erdelf was the one who explained to me the flaws of the DLL-only mods and disuaded me from attempting to make VEF into one. You can demand it as much as you like, but it will not happen.
Title: Re: [1.0] Verb Expansion Framework (v1.1.5)
Post by: ilikegoodfood on February 18, 2020, 06:30:02 AM
Quote from: SargBjornson on February 17, 2020, 07:59:24 AM
We want a DLL :)

RimWorld 1.1, which is currently available as an unstable release and which the refactored VEF will be targeting, includes in-built mechanisms for mod-dependancy and dependancy warnings, direct download links for non-steam users and other new mod-handling features. This resolves some of the previously expressed issues that you have with non-dll-only mods.
Title: Re: [1.0] Verb Expansion Framework (v1.1.5)
Post by: Panth on February 27, 2020, 12:26:45 AM
I've got... Sort of a weird issue, and I think it might stem from this mod.
One of my pawns has lost their basic melee attacks. Smash and bite.
Where it should be:

<verbTracker>
<verbs>
<li Class="Verb_MeleeAttackDamage">
<loadID>Thing_Human5030_0_Smash</loadID>
<currentTarget>(0, 0, 0)</currentTarget>
<canHitNonTargetPawnsNow>True</canHitNonTargetPawnsNow>
</li>
<li Class="Verb_MeleeAttackDamage">
<loadID>Thing_Human5030_1_Smash</loadID>
<currentTarget>(0, 0, 0)</currentTarget>
<canHitNonTargetPawnsNow>True</canHitNonTargetPawnsNow>
</li>
<li Class="Verb_MeleeAttackDamage">
<loadID>Thing_Human5030_2_Bite</loadID>
<currentTarget>(0, 0, 0)</currentTarget>
<canHitNonTargetPawnsNow>True</canHitNonTargetPawnsNow>
</li>
<li Class="Verb_MeleeAttackDamage">
<loadID>Thing_Human5030_3_Smash</loadID>
<currentTarget>(0, 0, 0)</currentTarget>
<canHitNonTargetPawnsNow>True</canHitNonTargetPawnsNow>
</li>
</verbs>
</verbTracker>

It's only:

<verbTracker>
<verbs />
</verbTracker>

Additional red error log tidbit:
Pawsy has no available melee attack, spawned=True dead=False downed=False curJob=Goto (Job_6378707) A=(166, 0, 169) verbList= bodyVerbs=
Verse.Log:Error(String, Boolean)
Verse.Log:ErrorOnce(String, Int32, Boolean)
RimWorld.Pawn_MeleeVerbs:ChooseMeleeVerb(Thing)
RimWorld.Pawn_MeleeVerbs:TryGetMeleeVerb(Thing)
RimWorld.FloatMenuUtility:GetMeleeAttackAction(Pawn, LocalTargetInfo, String&)
RimWorld.PawnAttackGizmoUtility:GetMeleeAttackGizmo(Pawn)
RimWorld.<GetAttackGizmos>c__Iterator0:MoveNext()
Verse.<GetGizmos>c__Iterator2:MoveNext()
System.Collections.Generic.List`1:AddEnumerable(IEnumerable`1)
System.Collections.Generic.List`1:.ctor(IEnumerable`1)
System.Linq.Enumerable:ToList(IEnumerable`1)
TorannMagic.HarmonyPatches:Pawn_Gizmo_ActionPatch(IEnumerable`1&, Pawn&)
Verse.Pawn:GetGizmos_Patch13(Object)
RimWorld.InspectGizmoGrid:DrawInspectGizmoGridFor(IEnumerable`1, Gizmo&)
RimWorld.MainTabWindow_Inspect:DrawInspectGizmos()
RimWorld.InspectPaneUtility:ExtraOnGUI(IInspectPane)
RimWorld.MainTabWindow_Inspect:ExtraOnGUI()
Verse.WindowStack:WindowStackOnGUI()
RimWorld.UIRoot_Play:UIRootOnGUI()
Verse.Root:OnGUI()


The pawn in question happens to be a werewolf(ROM - Werewolves) monk (Rimworld of Magic) wargmorph(Pawnmorpher). I'm four in-game years into the game when this suddenly happened.

Any idea what the issue here is, and/or how to fix it?