研究反射,但这似乎不是这里的答案?我明明是菜鸟。我正在尝试/为新的 Battletech 游戏的 mod 做出微小的贡献。
我有这个Dictionary并想使用它的键来设置属性,foreach如下所示。我不知道这是在编译时还是运行时,我猜是编译时...
我把 *limb* 作为伪代码放在我想象它可能如何工作的地方。该属性mechDef.Head是一个类型对象,LocationLoadoutDef其属性CurrentInternalStructure为float。
希望这是有道理的!
非常有义务提供任何帮助。
public class Settings {
public readonly Dictionary<string, bool> LimbRepair = new Dictionary<string, bool> {
{ "Head", false },
{ "LeftArm", false },
{ "RightArm", false },
{ "CenterTorso", false },
{ "LeftTorso", false },
{ "RightTorso", false },
{ "LeftLeg", false },
{ "RightLeg", false },
};
}
MechDef mechDef = new MechDef
(__instance.DataManager.MechDefs.Get(id), __instance.GenerateSimGameUID());
foreach (string limb in settings.LimbRepair.Keys) {
if (!settings.LimbRepair[limb]) {
mechDef.*limb*.CurrentInternalStructure = Math.Max
(1f, mechDef.*limb*.CurrentInternalStructure * (float)rng.NextDouble());
}
相关分类