可导出的第一版

This commit is contained in:
SoulliesOfficial
2025-11-16 09:56:20 -05:00
parent 5fe665d0ce
commit 97a3c86465
33 changed files with 271 additions and 200 deletions

View File

@@ -115,7 +115,7 @@ namespace Continentis.MainGame.Character
eventSubmodule.onFinishAttack.Invoke(target, attackResult);
combatBuffSubmodule.buffList.For(buff =>
{
buff.eventSubmodule.onDealAttack.Invoke(attackResult);
buff?.eventSubmodule.onDealAttack.Invoke(attackResult);
});
}
@@ -307,7 +307,7 @@ namespace Continentis.MainGame.Character
bool CheckAvailabilityAndSetTargets(CardInstance card, out List<CharacterBase> targets)
{
card.DetectTargetsValidity(out List<CharacterBase> valid, out _, out _);
if (valid.Count == 0 || !card.CheckBeforePlay())
if (valid.Count == 0)
{
targets = null;
return false; // 无有效目标或无法使用则跳过
@@ -321,10 +321,10 @@ namespace Continentis.MainGame.Character
IntentionBase currentIntention = intentionSubmodule.currentIntention;
List<CardInstance> availableCards = deckSubmodule.PoolPile;
List<IntendedCard> intended = new List<IntendedCard>();
int currentStamina = GetAttribute("Stamina");
int remainingStamina = currentStamina - currentIntention.guaranteedStamina;
int currentMana = GetAttribute("Mana");
int remainingMana = currentMana - currentIntention.guaranteedMana;
int predictedStamina = Mathf.Min(GetAttribute("MaximumStamina"), GetAttribute("Stamina") + GetAttribute("StaminaRecoverPerAction"));
int remainingStamina = predictedStamina - currentIntention.guaranteedStamina;
int predictedMana = Mathf.Min(GetAttribute("MaximumMana"), GetAttribute("Mana") + GetAttribute("ManaRecoverPerAction"));
int remainingMana = predictedMana - currentIntention.guaranteedMana;
List<CardInstance> forced = new List<CardInstance>();
List<CardInstance> normal = new List<CardInstance>();

View File

@@ -31,13 +31,29 @@ namespace SLSFramework.UModAssistance
{
await Task.Yield();
}
if (!host.IsSuccessful)
{
throw new Exception($"Failed to load mod '{modName}' asynchronously");
Debug.LogError($"[ModLoader] Mod load operation for '{modName}' failed (hostTask.IsSuccessful == false).");
throw new Exception($"Failed to load mod '{modName}' asynchronously (Operation Failed)");
}
ModHost modHost = host.Result;
if (modHost == null || !modHost.IsModLoaded)
{
if (modHost != null)
{
var errorMessage = modHost.LoadResult.Message;
Debug.LogError($"[ModLoader] Mod load operation for '{modName}' failed: {errorMessage}");
}
throw new Exception($"Failed to load mod '{modName}' asynchronously (ModHost is null or not loaded)");
}
LoadedMods.Add(modName, host.Result);
Debug.Log($"Mod '{modName}' async loaded successfully.");
return host.Result;
return modHost;
}
}