public static ActionCostType DispatchActionCostMod(this GameObject critter,
                                                       ActionCostPacket acp, TurnBasedStatus tbStatus, D20Action action)
    {
        var dispatcher = critter.GetDispatcher();

        if (dispatcher == null)
        {
            return(acp.hourglassCost);
        }

        EvtObjActionCost dispIo = new EvtObjActionCost(acp, tbStatus, action);

        dispatcher.Process(DispatcherType.ActionCostMod, D20DispatcherKey.NONE, dispIo);
        return(dispIo.acpCur.hourglassCost);
    }
 public ActionErrorCode GetPyActionCost(D20Action action, TurnBasedStatus tbStatus, ActionCostPacket acp)
 {
     throw new System.NotImplementedException();
 }