Jump to content
Xaratas

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?

Share this post


Link to post
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

Share this post


Link to post
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.

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

Anywho, now that that piece of embarrassment is over, I did a full test and yes this change is retroactive and will apply to all figurines one already owns or has seen in the game world. 

 

  • Like 2

Share this post


Link to post
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).

Share this post


Link to post
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).

Share this post


Link to post
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

Share this post


Link to post
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

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...