《魔女:终末旅途》API文档

ScriptExecutor 类

ScriptExecutor 类提供了在 Unity 游戏中动态编译并执行 C# 脚本的能力。它能够根据不同对象的状态,在战斗中实时修改属性、触发事件或执行逻辑。

  • 命名空间GlobalNamespace
  • 程序集Assembly-CSharp.dll

语法

public class ScriptExecutor : IScriptExecute

构造函数

构造函数 描述
ScriptExecutor(StatusManager status, DataConfig dataConfig) 创建一个带有初始状态对象的 ScriptExecutor 实例。
ScriptExecutor(DataConfig dataConfig) 创建一个没有初始状态对象的 ScriptExecutor 实例。

属性

属性 类型 描述
Self StatusManager 效果施放者。
Object List<StatusManager> 效果目标对象列表。
dataConfig DataConfig 数据配置。
Target StatusManager 当前目标。
ScriptDict Dictionary<string, Delegate> 已编译的脚本缓存。
ValueDice DiceWrapper 数值骰子。
CheckDice DiceWrapper 检定骰子。
DefaultDice DiceWrapper 默认骰子。
Vars Dictionary<string, string> 全局变量。
FightVars Dictionary<string, string> 战斗时的变量。
HandCard List<CardItem> 当前手牌列表。
fightType FightType 当前战斗类型。
INF string 无限持续时间的标识。

方法

脚本管理

方法 描述
void PreCompileScripts(string ScriptName, ScriptOptions options = null) 编译并缓存指定名称的脚本。
void RunScript(string ScriptsName) 执行指定名称的脚本。

属性操作

方法 描述
void ChangeHp(string val) 改变目标的血量,支持正负值。
void SetHp(string val) 设置目标的当前血量。
void SetMaxHp(string val) 设置目标的最大血量。
void ChangeMaxHp(string val) 增加目标的最大血量。
void ChangeDefence(string val) 改变目标的护盾值。
void ChangePower(string val) 改变玩家的能量。
void SetPower(string val) 设置玩家的能量。
void ChangeMaxPower(string val) 改变玩家的最大能量。
void ChangeMoney(string val) 改变玩家的金币。

Buff 操作

方法 描述
void AddBuff(string buffId, string duration, string level) 给目标添加 Buff。
void RemoveBuff(string buffId) 移除目标的某个 Buff。
void RemoveAllBuff() 移除目标的所有 Buff。
void RemoveBadBuff(string val, string good = "false") 移除若干个正面或负面 Buff。
void RemoveAllBadBuff(string type) 移除所有正面或负面 Buff。
void RunImmediately(string buffId, string eventName) 立即触发 Buff 的指定事件。

卡牌操作

方法 描述
void AddCard(string id) 添加一张卡牌到卡组。
void DrawCount(string val) 抽取指定数量的卡牌。
void ThrowCard(string val, string type) 丢弃卡牌。
void BurnCard(string val, string type) 燃烬指定数量卡牌,1为非强制,有确认键,0为无确认键,必须选完
void SendCard(string val) 发送卡牌给目标玩家(联机传递卡牌)。
void ShuffleDeck() 清空弃牌堆重新洗牌。
void ChangeCardTop(string val) 改变手牌上限。
void AddCardById(string id) 根据 ID 添加卡牌。
void AddCardByCardList(string count, string tag = "all") 从抽牌堆中选择卡牌添加到手卡。
void AddCardByUsedCardList(string count, string tag = "all") 从弃牌堆中选择卡牌添加到手卡。
void RandomAddCard(string id) 随机插入一张指定的卡牌到卡组。

战斗与事件操作

方法 描述
void ChangeType(FightType type) 改变当前战斗状态。
void EscapeFight() 逃离当前战斗。
void ChangeRound() 跳过当前对象的回合。
void Undone() 标记为未完成的效果。
void DoAction(string index) 执行目标的一个行动(index代表顺序,从0开始)。
void AddEnemy(string id) 添加一个敌人到战场。
void Resurrection(string value) 以value血量复活目标。
void AddEvent(string eventName, Action action) 添加无参数事件监听。
void AddEvent(string eventName, Action<SourceData> action) 添加带 SourceData 参数的事件监听。
void ForAllStatus(Action<StatusManager> action) 对所有目标依次执行。

动态变量操作(承伤率等)

方法 描述
void ChangeDynamicVar(string varName, string value) 修改动态变量的值。
void ChangeDynamicVarPercent(string varName, string value) 按百分比修改动态变量的值。

工具与辅助

方法 描述
void SetStatus(string filter) 根据筛选器设置目标对象。例如:SelfTargetAllEnemy 等。组合语法,由范围词与类型词组合。如"AllRandomEnemy1"(随机一个敌人)等 ,其中左边必须是范围限定,后跟类型限定,后跟可能的数量限定。
Enemy GetEnemy() 获取当前 Self 对应的 Enemy类型。
string atk() 获取当前目标的攻击力。
string def() 获取当前目标的防御力。
List<Dictionary<string, string>> GetcardsByRarity(string minRarity, string maxRarity) 根据稀有度范围筛选卡牌。
void WatchRoleTable(string propertyName, Action action) 监听角色表的属性变化。
void WatchRoleTable(string propertyName, Action<int> action) 带参数监听角色表属性变化。
void AddDescription(string index, string type, string value) 添加下标为index的新特定类型的DesVal,(index从1开始,1对应描述中的{0},2对应{1},以此类推。类型共有"Damage","Defence","Hp","Power","Draw","Money","Buff")
void Clear() 移除所有事件监听,并释放资源。

嵌套类

DiceWrapper 类

public class DiceWrapper

骰子封装器,提供掷骰功能。

成员 描述
Dice.State result 当前掷骰的结果。
Dice.State Roll(int? Target = null) 掷骰并返回结果。
Dice.State InternalRoll(int? Target = null) 内部掷骰,不触发外部事件。
Dice WithRange(int min, int max) 设置骰子掷骰的范围。

PlayerInfo 类(静态)

提供游戏中玩家的各种信息及操作。

属性 描述
MaxHp 玩家最大生命值。
Hp 当前生命值。
Power 当前能量。
MaxPower 最大能量。
Money 金币数量。
RelicCount 遗物数量。
CardCount 当前卡组数量。
BlessingCount 祝福数量。
CardTopCount 卡组上限。
enemyCount 当前敌人数量。
方法 描述
void GiveWin() 强制胜利。
void AddCard(string id) 添加卡牌。
void RemoveCard(string id) 移除卡牌。
void AddRelic(string id) 添加遗物。
void RemoveRelic(string id) 移除遗物。
void AddBless(string id) 添加祝福。
void RemoveBless(string id) 移除祝福。
void ShowReward() 显示奖励。
void StartLevel(string type, string id2 = null) 开始指定关卡。
void GameOver() 游戏结束。

脚本示例代码


SetStatus("AllEnemy");
Damage("1");
posted @ 2025-06-26 00:46  DLS童真  阅读(170)  评论(0)    收藏  举报