Is there any way to change a combatant's Battle Menu, or launch a different Battle Menu, via a Schematic? At the moment I'm doing it by duplicating the combatant's Class, changing the Battle Menu override in the new Class, and then changing Class in the schematic, but it's very awkward and hacky! Is there a better way?

Thx :)
  • I don't think so, there's currently no way to change the battle menu via schematics.
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • Okay, cool, thx for the info - will just stay doing it the awkward and hacky when then!

    (Or I'll have a go at writing a "Set Combatant Battle Menu" node myself... ;) ).
  • Since there's no custom override for this, your node would need to change the battle menu settings of the combatant if you're going that way. That'll not be saved with save games, though.
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • Yep, got it. Need to clean things up a little (so it doesn't kill the game when I forget to put a battle menu override on a combatant for example), but this seems to be working well so far... :)

    Thanks for the pointers!

    using UnityEngine;
    using GamingIsLove.ORKFramework;
    using GamingIsLove.ORKFramework.Components;
    using System.Collections.Generic;
    using GamingIsLove.Makinom;
    using GamingIsLove.Makinom.Schematics;
    using GamingIsLove.Makinom.Schematics.Nodes;

    namespace GamingIsLove.ORKFramework.Schematics.Nodes
    {
    [EditorHelp("Set Combatant Battle Menu", "Changes the Battle Menu of a combatant.\n", "")]
    [NodeInfo("Combatant/Combatant")]

    public class SetBattleMenu : BaseSchematicNode
    {

    [EditorHelp("Battle Menu", "Define the Battle Menu that will be used.")]
    public AssetSelection<BattleMenuAsset> newBattleMenu = new AssetSelection<BattleMenuAsset>();

    //[EditorSeparator]
    //[EditorTitleLabel("Used Object")]
    public SchematicObjectSelection usedObject = new SchematicObjectSelection();

    public SetBattleMenu()
    {

    }

    public override void Execute(Schematic schematic)
    {
    Combatant combatant = this.usedObject.GetCombatant(schematic);

    combatant.Setting.battleMenu.battleSystem[0].battleMenu = newBattleMenu;

    schematic.NodeFinished(this.next);
    }
    }
    }
Sign In or Register to comment.