public static int dispatch1ESkillLevel(this GameObject critter, SkillId skill, GameObject opposingObj, SkillCheckFlags flag) { var noBonus = BonusList.Default; return(dispatch1ESkillLevel(critter, skill, ref noBonus, opposingObj, flag)); }
public static int dispatch1ESkillLevel(this GameObject critter, SkillId skill, ref BonusList bonusList, GameObject opposingObj, SkillCheckFlags flag) { var dispatcher = critter.GetDispatcher(); if (dispatcher == null) { return(0); } DispIoObjBonus dispIO = DispIoObjBonus.Default; dispIO.flags = flag; dispIO.obj = opposingObj; dispIO.bonlist = bonusList; dispatcher.Process(DispatcherType.SkillLevel, (D20DispatcherKey)(skill + 20), dispIO); bonusList = dispIO.bonlist; return(dispIO.bonlist.OverallBonus); }