-
Posts
38 -
Joined
-
Last visited
Reputation
79 ExcellentAbout Airavat
-
Rank
(1) Prestidigitator
-
Thank you so much for your reply. I was beginning to think that this was going to be the case. Will make the necessary changes. Edit: Well the good news is that Monastic Unarmed Training bonuses are now applying, thanks for that tip, but the Haymaker modal is still not visible. Could I have entered the wrong ID for ProficientAbilityID? It was the only one I could find.
-
Airavat changed their profile photo
-
Airavat started following Portraits III and Druid Spiritshift Unarmed Proficiency Question
-
Hello there, I have been trying to modify the Spiritshifted "Weapons" to use the Unarmed tag and proficiency. The expectation is that this would activate Monastic Unarmed Training/Transcendent Suffering and the Haymaker modal while Spiritshifted. However even after setting EquipmentType to Unarmed and setting the ProficientAbilityID to Haymaker, it doesn't seem to work. Devoted bonuses are applying which means something is working. I would be grateful for any guidance. Please find the code below for the Attack data: { "GameDataObjects": [ { "$type": "Game.GameData.AttackMeleeGameData, Assembly-CSharp", "DebugName": "Druid_Stag_Claws", "ID": "fedd4e11-8c15-46cc-ba28-31aebcd762c9", "Components": [ { "$type": "Game.GameData.AttackBaseComponent, Assembly-CSharp", "KeywordsIDs": [ "a39ed49e-b2d2-4d64-90cb-faaedf80dce3" ], "AttackDistance": 0.75, "MinAttackDistance": 0, "AttackVariationID": "35abdf41-fc3f-4310-8d5d-5d7da644affc", "UseParentEquippableHand": "false", "CastSpeedID": "eacb53e3-6eb5-422a-92ca-99cc883ae4a9", "RecoveryTimeID": "566840d9-1561-4243-8ca7-889df9869847", "OverrideTacticalActionType": "None", "ImpactDelay": 0, "ForcedTarget": "None", "AffectedTargetType": "All", "AffectedTargetConditional": { "Conditional": { "Operator": 0, "Components": [] } }, "AffectedTargetDeathState": "Alive", "HostilityOverride": "Default", "PushDistance": 0, "FaceTarget": "true", "AccuracyBonus": 0, "PenetrationRating": 9, "DamageData": { "DamageType": "Pierce", "AlternateDamageType": "None", "Minimum": 13, "Maximum": 19, "TacticalMinimumOverride": 0, "TacticalMaximumOverride": 0, "DamageProcs": [] }, "Require****Object": "true", "StatusEffectKeywordsIDs": [], "StatusEffectsIDs": [], "RandomizeStatusEffect": "false", "CanGraze": "false", "CanCrit": "true", "DefendedBy": "Deflect", "AfflictionsDefendedBy": "None", "AfflictionApplicationModifier": "None", "SubstituteHitVisualEffect": "", "VisualEffects": [], "AttackOnImpactID": "00000000-0000-0000-0000-000000000000", "ExtraAttackID": "00000000-0000-0000-0000-000000000000", "LaunchBone": "RightWeapon", "HitBone": "Chest", "OnHitShakeDuration": "None", "OnHitShakeStrength": "None", "NoiseLevelID": "15743f94-1026-40b0-8e13-a667b3f66f63", "AllReactNoise": "false", "InterruptsOn": "None", "InterruptType": "Normal", "TargetAngle": 0, "ApplyOnceOnly": "false", "PathsToTarget": "true", "HideFromCombatLog": "false", "AdditionalAttackOnTooltip": "false", "DoesNotApplyDamage": "false", "TreatAsWeapon": "true", "BounceData": { "Bounces": 0, "Multiplier": 0.5, "Range": 10, "InRangeOrder": "false", "NoRepeatTargets": "false", "AlwaysBounceAtEnemies": "false", "Delay": 0, "NeverBounce": "false" }, "AttackValidityConditional": { "Conditional": { "Operator": 0, "Components": [] } } }, { "$type": "Game.GameData.AttackMeleeComponent, Assembly-CSharp", "EngagementRadius": 1, "IsUnarmed": "true" } ] } ] } Also find the Weapon data code: { "GameDataObjects": [ { "$type": "Game.GameData.WeaponGameData, Assembly-CSharp", "DebugName": "Druid_Stag_Claws", "ID": "4c797511-68f8-4407-87d8-8e0e9ac40060", "Components": [ { "$type": "Game.GameData.ItemComponent, Assembly-CSharp", "DisplayName": 1819, "DescriptionText": 1822, "DescriptionTextTactical": -1, "FilterType": "Weapons", "InventoryAudioEventListID": "705deb97-3f84-48c8-a84b-e3c34e2d0e3a", "IsQuestItem": "false", "IsIngredient": "false", "IsCurrency": "false", "IsAdventuringItem": "false", "IsJunk": "false", "CanSellForFullValue": "false", "MaxStackSize": 1, "NeverDropAsLoot": "true", "CanBePickpocketed": "false", "IsUnique": "false", "Value": 0, "IconTextureSmall": "gui/icons/items/ingredients/stag_horn_s.png", "IconTextureLarge": "gui/icons/items/ingredients/stag_horn_l.png", "PencilSketchTexture": "", "InspectOnUseButton": [], "IsPlaceholder": "false" }, { "$type": "Game.GameData.EquippableComponent, Assembly-CSharp", "EquipmentType": "Unarmed", "EquipmentSlot": "AnyWeapon", "AppearancePiece": { "ModelVisualDataPath": "" }, "ItemModsIDs": [ "9691785d-0207-492a-9c88-47f9a86db8af" ], "OnEquipVisualEffects": [], "RestrictedToClassIDs": [], "RestrictedToPlayer": "false", "EquipConditionals": { "Operator": 0, "Components": [] }, "ProficientAbilityID": "b863a8c3-ed3b-4787-8b3f-2bdea96c47a1", "CannotUnequip": "false", "ItemRendererPrefab": "", "ItemModel": "", "AnimationController": "", "PaperdollOverrideRenderer": "", "AttackSummonID": "00000000-0000-0000-0000-000000000000", "CannotSheathe": "false", "PropVisualEffects": [] }, { "$type": "Game.GameData.WeaponComponent, Assembly-CSharp", "Stance": "Unarmed", "AnimationStanceID": "00000000-0000-0000-0000-000000000000", "StatusEffectsOnLaunchIDs": [], "IsDisplayedWhenAlternate": "true", "IsUniversalType": "false", "AttackID": "fedd4e11-8c15-46cc-ba28-31aebcd762c9", "NoiseLevelID": "15743f94-1026-40b0-8e13-a667b3f66f63", "ForceBackScabbard": "false", "ScabbardAppearancePiece": { "ModelVisualDataPath": "" }, "ScabbardRendererPrefab": "", "ScabbardModel": "", "AudioEventListID": "af7e82ea-8a9d-4fb9-bdb8-15f212f9fd11" } ] } ] } Thank you Regards
-
Portraits III
Airavat replied to Amentep's topic in Pillars of Eternity II: Deadfire General Discussion (NO SPOILERS)
-
Portraits III
Airavat replied to Amentep's topic in Pillars of Eternity II: Deadfire General Discussion (NO SPOILERS)
-
Portraits III
Airavat replied to Amentep's topic in Pillars of Eternity II: Deadfire General Discussion (NO SPOILERS)
-
Portraits III
Airavat replied to Amentep's topic in Pillars of Eternity II: Deadfire General Discussion (NO SPOILERS)
-
Portraits III
Airavat replied to Amentep's topic in Pillars of Eternity II: Deadfire General Discussion (NO SPOILERS)
-
The way I'm doing it currently is by adding root-level objects according to their $type value. I chose to do it this way because I didn't have perfect information on the objects' structure, and if some $types wouldn't require me to add a lot of extra form controls because of extra components they may contain. Also this way I have the most control over what shows in the list and what will not be included in the query as unimportant to modders. I imagine that in a perfect setup the editor users will only see the stuff in the lists and in the detail views which they "need in the majority of situations". So as a result, I am currently using a function that's like this: determineGameDataQueryOptions(dbName: string): string[] { switch (dbName) { case 'characters': return [this.gameDataObjectTypes.CHARACTERSTATS]; case 'progressiontables': return [this.gameDataObjectTypes.PROGRESSIONTABLE]; case 'abilities': return [this.gameDataObjectTypes.ABILITY, this.gameDataObjectTypes.SPECIALABILITY]; case 'attacks': return [ this.gameDataObjectTypes.RECOVERYTIME, this.gameDataObjectTypes.ATTACK_AOE, this.gameDataObjectTypes.ATTACK_AURA, this.gameDataObjectTypes.ATTACK_BEAM, this.gameDataObjectTypes.ATTACK_FIREARM, this.gameDataObjectTypes.ATTACK_GRAPPLE, this.gameDataObjectTypes.ATTACK_MELEE, this.gameDataObjectTypes.ATTACK_PULSEDAOE, this.gameDataObjectTypes.ATTACK_RANDOMAOE, this.gameDataObjectTypes.ATTACK_RANGED, this.gameDataObjectTypes.ATTACK_SUMMON, this.gameDataObjectTypes.ATTACK_SUMMONRANDOM, this.gameDataObjectTypes.ATTACK_TELEPORT, this.gameDataObjectTypes.ATTACK_BEAMTELEPORT, this.gameDataObjectTypes.ATTACK_TELEPORT, this.gameDataObjectTypes.ATTACK_HAZARD, this.gameDataObjectTypes.ATTACK_MASTERSCALL, this.gameDataObjectTypes.ATTACK_WALL ]; case 'statuseffects': return [this.gameDataObjectTypes.STATUSEFFECT, this.gameDataObjectTypes.AFFLICTION]; } } It's tempting to just filter them by their first component's type as you suggest, but my concern is that if I just include every object that has a Game.GameData.GenericAbilityComponent, I may offer objects in the editor for which I don't yet have all the appropriate form controls, and this may confuse users. I've looked over part of the objects in abilities.gamedatabundle and some seem to have modding-relevant data in their components after the GenericAbilityComponent. The short answer is yes The long one is that you need to replicate objects in many of the files, if you want to build a custom class, with its own full set of abilities and their own effects. It's doable but it's a lot of work, for some of which the editor can help you, but not for everything. It would help if you are very proficient with the game first, so you know what capabilities the game's rules offer your character, and you can better design and balance its abilities and their effects. Thank you for your quick reply.
-
Portraits III
Airavat replied to Amentep's topic in Pillars of Eternity II: Deadfire General Discussion (NO SPOILERS)
Hello- So sorry that you spent your time on it, thank you very much for trying. A very generous offer, I'll see what else I can find. How about this? Not exactly a match for the armor, but a great elf archer. Here you go. I added a little shade to the portrait background under the impression that it will be better in-game but obviously the final decision is yours. Regards -
Portraits III
Airavat replied to Amentep's topic in Pillars of Eternity II: Deadfire General Discussion (NO SPOILERS)
-
Portraits III
Airavat replied to Amentep's topic in Pillars of Eternity II: Deadfire General Discussion (NO SPOILERS)
Tried a thing or two and I think it looks ok enough to use. Regards I made a small edit to the watercolor variants. -
Portraits III
Airavat replied to Amentep's topic in Pillars of Eternity II: Deadfire General Discussion (NO SPOILERS)
-
Portraits III
Airavat replied to Amentep's topic in Pillars of Eternity II: Deadfire General Discussion (NO SPOILERS)