Jump to content

Figurines have Charges, how to get them away?


Recommended Posts

items.gamedatabundle lists figurines as ConsumableGameData.

 

The documentation says these only have an ItemComponent and a ConsumableComponent. But the usageType Attribute is only on GenericAbilityGameData.

 

So if i try

 

{
    "GameDataObjects": [{
        "$type": "Game.GameData.GenericAbilityGameData, Assembly-CSharp",
        "DebugName": "Figurine_Laughing_Imp",
        "ID": "1f0190e6-4257-4571-9b79-aabd215767f0",
        "Components": [
        {
            "$type": "Game.GameData.GenericAbilityComponent, Assembly-CSharp",
            "UsageType": "None",
            "UsageValue": 0
        }
        ]
    }    
}

it does nothing.

Adding the GenericAbilityComponent as 3rd array item into the ConsumableGameData does also nothing.

 

Whats the correct way? Is it possible at all?

Link to comment
Share on other sites

I don't think this would be possible as a consumable since the docs say ConsumableGameData should have an ItemComponent and a ConsumableComponent. Even though the fields are both called UsageType they index different enums. 

 

What you might want to do instead is look at an item that grants an ability, and then use that -- isn't there a number of weapons that grants Garotte or something? I can't quite remember. ah, that would require the item be Equippable... drat.

Edited by ydaraishy
Link to comment
Share on other sites

Ah, more discussion over here. :)

 

It being a consumable shouldn't be an issue, as it was in 1.1.1. 

 

Here is what the item entry was in 1.1.1*:

{
			"$type": "Game.GameData.ConsumableGameData, Assembly-CSharp",
			"DebugName": "Figurine_Battered_Dog",
			"ID": "6def4809-892c-4d6b-b1ee-a06be0fc2059",
			"Components": [{
					"$type": "Game.GameData.ItemComponent, Assembly-CSharp",
					"DisplayName": 4604,
					"DescriptionText": 4605,
					"FilterType": "Consumables",
					"InventoryAudioEventListID": "705deb97-3f84-48c8-a84b-e3c34e2d0e3a",
					"IsQuestItem": "false",
					"IsIngredient": "false",
					"IsCurrency": "false",
					"IsAdventuringItem": "false",
					"CanSellForFullValue": "false",
					"MaxStackSize": 1,
					"NeverDropAsLoot": "false",
					"CanBePickpocketed": "true",
					"IsUnique": "true",
					"Value": 750,
					"IconTextureSmall": "gui/icons/items/misc/figurine_battered_dog_s.png",
					"IconTextureLarge": "gui/icons/items/misc/figurine_battered_dog_l.png",
					"PencilSketchTexture": "",
					"InspectOnUseButton": [],
					"IsPlaceholder": "false"
				}, {
					"$type": "Game.GameData.ConsumableComponent, Assembly-CSharp",
					"Type": "Figurine",
					"UsageCount": 1,
					"UsageType": "PerRest",
					"AnimationVariation": 100,
					"AbilityID": "d413261a-1919-4924-ab10-23b3e03272b5",
					"PickpocketAbilityID": "00000000-0000-0000-0000-000000000000",
					"Timer": 0,
					"SkillRequirement": {
						"SkillID": "00000000-0000-0000-0000-000000000000",
						"Value": 0
					},
					"ShipMoraleBonus": 1
				}
			]
		}

* ALWAYS keep backups of the old game data when you can, kiddos. :lol:

 

As I said in the thread over in the beta section, it's identical in 1.1.1 and 1.2.0.  Only thing different for them in the two versions of the game is what's going on in the abilities gamedatabundle. 

 

Checking abilities.gamedatabundle "UseageType": "None" is still valid so this really should be working.

My gut instinct says it might be the partial override system causing a problem and the game then reverting to the base values its expecting.  When I have some time I'll look into it some more, as it's curious more than anything else.

Link to comment
Share on other sites

DERP DERP DERP DERP DERP 

 

Got it to work and it's all on me in my testing.

 

Forgot to put the blessed thing in its own folder in the override section. Gods I can't believe I made that mistake. :lol:

 

Screenshots and code in a moment or twenty.

 

===

 

Screenshot:

 

WJfaS4t.png

 

Example gamedatabundle:

{
	"GameDataObjects": [{
			"$type": "Game.GameData.GenericAbilityGameData, Assembly-CSharp",
			"DebugName": "Figurine_Battered_Dog_Ability",
			"ID": "d413261a-1919-4924-ab10-23b3e03272b5",
			"Components": [{
					"$type": "Game.GameData.GenericAbilityComponent, Assembly-CSharp",
					"KeywordsIDs": ["ddf90f19-c9a2-4087-a1a7-a00ee46bc3dd"],
					"DisplayName": 4072,
					"Description": -1,
					"UpgradeDescriptions": [],
					"UpgradedFromID": "00000000-0000-0000-0000-000000000000",
					"Vocalization": "NoVocalization",
					"Icon": "",
					"UsageType": "None",
					"UsageValue": 0,
					"AbilityClassID": "00000000-0000-0000-0000-000000000000",
					"AbilityLevel": 0,
					"IsPassive": "false",
					"StackingRuleOverride": "Default",
					"TriggerOnHit": "false",
					"IsModal": "false",
					"ModalGroupID": "00000000-0000-0000-0000-000000000000",
					"IsCombatOnly": "true",
					"IsNonCombatOnly": "false",
					"HideFromUI": "false",
					"HideFromCombatLog": "false",
					"UniqueSet": "None",
					"NoiseLevelID": "15743f94-1026-40b0-8e13-a667b3f66f63",
					"DurationOverride": 0,
					"OverrideEmpower": "Default",
					"ClearsOnMovement": "false",
					"CannotActivateWhileInStealth": "false",
					"CannotActivateWhileInvisible": "false",
					"ActivationPrerequisites": {
						"Conditional": {
							"Operator": 0,
							"Components": []
						}
					},
					"ApplicationPrerequisites": {
						"Conditional": {
							"Operator": 0,
							"Components": []
						}
					},
					"DeactivationPrerequisites": {
						"Conditional": {
							"Operator": 0,
							"Components": []
						}
					},
					"PowerLevelScaling": {
						"ScalingType": "ModifiersOnly",
						"BaseLevel": 0,
						"LevelIncrement": 1,
						"MaxLevel": 0,
						"DamageAdjustment": 1,
						"DurationAdjustment": 1,
						"BounceCountAdjustment": 0,
						"ProjectileCountAdjustment": 0,
						"AccuracyAdjustment": 0,
						"PenetrationAdjustment": 0
					},
					"StatusEffectKeywordsIDs": [],
					"StatusEffectsIDs": [],
					"VisualEffects": [],
					"SelfMaterialReplacementID": "00000000-0000-0000-0000-000000000000",
					"AttackID": "7b07ae25-2819-4e32-a025-1459b6b5543d",
					"AITargetingConditional": {
						"Conditional": {
							"Operator": 0,
							"Components": []
						},
						"Scripts": []
					},
					"AudioEventListID": "00000000-0000-0000-0000-000000000000"
				}, {
					"$type": "Game.GameData.ProgressionUnlockableComponent, Assembly-CSharp"
				}
			]
		}
	]
}

Use that as a template and keep adding all the figurines one wants. :)

Edited by Zap Gun For Hire
Link to comment
Share on other sites

I interpreted OP's question about how to remove the usage requirements on figurines -- in generic terms, to have an item that grants an ability without restrictions on uses. Of course it's trivial to make your own figurines with the usual usage restrictions. I suspect you have to have some restrictions for something to work (otherwise things don't quite make sense).

Link to comment
Share on other sites

The Image linked shows 1 usage per rest when valuetype is changed to none from charges?  Is this just a tooltip default minimum?  Can you spam the thing?  (I guess you could change charges to a silly amount as well).

Link to comment
Share on other sites

1 per rest is the default limit since ever.
Only the charges are new.
 
https://www.nexusmods.com/pillarsofeternity2/mods/137
 
And yes, you can change it to spam it if you set the

ConsumableComponent from the item file to per encounter and the UsageCount to something like 10

Edited by Xaratas
  • Like 1
Link to comment
Share on other sites

The Image linked shows 1 usage per rest when valuetype is changed to none from charges?  Is this just a tooltip default minimum?  Can you spam the thing?  (I guess you could change charges to a silly amount as well).

I did that mod before the patch and seem work like before

"UsageCount": 1

just change that as you like

below i've set it to 5 in this mod based on 1.1 (just to try)

 

Pillars_of_Eternity_II_Deadfire_Screensh

Edited by kilay
Link to comment
Share on other sites

Ok, to explain better wait i wrote before , i've tried that on an old mine mod based on 1.1.0064 where
 

"UsageType": "None",
"UsageValue": 0,

in AbilityComponent ends to have one use per rest

 

and  changing it to

"UsageType": "None",
"UsageValue": 5,

result to 5 per rest usages (with infinite charges) (in both the patches)

 

instead with

"UsageType": "Charged",
"UsageValue": 5,

(like  we had in 1.2.0.0017 on default )

 

we have just 5 charges before that the item become useless

Link to comment
Share on other sites

Ah, damn it, who would think that a part of that item is defined in abilities.gamedatabundle.

It's because the actual summoning is an ability.  If you take a look, many items will either call an ability, cause a status effect, or have an attack.

 

The FUN ones are when an item calls an ability which calls an attack which calls a status effect.  The REALLY FUN ones are the ones that loop back and forth all three. :lol:

Edited by Zap Gun For Hire
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...