public override void RunAction() { var target = this.Target.Unit; var initiator = this.Context.MaybeCaster; var result = bonus + initiator.Descriptor.Progression.GetClassLevel(character_class) + initiator.Descriptor.Stats.GetStat <ModifiableValueAttributeStat>(stat_type).Bonus; if (!InspectUnitsHelper.IsInspectAllow(target)) { return; } BlueprintUnit blueprintForInspection = target.Descriptor.BlueprintForInspection; InspectUnitsManager.UnitInfo info = Game.Instance.Player.InspectUnitsManager.GetInfo(blueprintForInspection); if (info == null) { return; } if (info.KnownPartsCount == 4) { return; } int dc = info.DC; Common.AddBattleLogMessage($"{initiator.CharacterName} forced DC {dc} monster lore check: {result}"); info.SetCheck(result, initiator); }
public override void RunAction() { var target = this.Target.Unit; var initiator = this.Context.MaybeCaster; var result = bonus + value.Calculate(this.Context); if (!InspectUnitsHelper.IsInspectAllow(target)) { return; } BlueprintUnit blueprintForInspection = target.Descriptor.BlueprintForInspection; InspectUnitsManager.UnitInfo info = Game.Instance.Player.InspectUnitsManager.GetInfo(blueprintForInspection); if (info == null) { return; } int dc = info.DC; Common.AddBattleLogMessage($"{initiator.CharacterName} forced DC {dc} monster lore check: {result}"); if (info.KnownPartsCount < 4) { info.SetCheck(result, initiator); EventBus.RaiseEvent <IKnowledgeHandler>((Action <IKnowledgeHandler>)(h => h.HandleKnowledgeUpdated(info))); } }
public override void RunAction() { var target = this.Target.Unit; var initiator = this.Context.MaybeCaster; if (!InspectUnitsHelper.IsInspectAllow(target)) { return; } BlueprintUnit blueprintForInspection = target.Descriptor.BlueprintForInspection; InspectUnitsManager.UnitInfo info = Game.Instance.Player.InspectUnitsManager.GetInfo(blueprintForInspection); StatType statType = !(bool)((UnityEngine.Object)info.Blueprint.Type) ? StatType.SkillLoreNature : info.Blueprint.Type.KnowledgeStat; if (info == null) { return; } ModifiableValueSkill stat = initiator.Stats.GetStat <ModifiableValueSkill>(statType); int?nullable1; int?nullable2; if (stat == null) { nullable1 = new int?(); nullable2 = nullable1; } else { nullable2 = new int?(stat.BaseValue); } nullable1 = nullable2; int dc = info.DC; int bonus = value.Calculate(this.Context); if ((!nullable1.HasValue ? 0 : nullable1.Value) > 0 || (bool)initiator.Descriptor.State.Features.MakeKnowledgeCheckUntrained) { var skill_check = new RuleSkillCheck(initiator, statType, dc); skill_check.AddTemporaryModifier(initiator.Stats.GetStat(statType).AddModifier(bonus, null, descriptor)); skill_check.IgnoreDifficultyBonusToDC = true; int rollResult = Rulebook.Trigger <RuleSkillCheck>(skill_check).RollResult; Common.AddBattleLogMessage($"{initiator.CharacterName} DC {dc} monster lore check: {rollResult}"); if (dc <= rollResult && action_on_success != null) { action_on_success.Run(); } if (info.KnownPartsCount < 4) { info.SetCheck(rollResult, initiator); EventBus.RaiseEvent <IKnowledgeHandler>((Action <IKnowledgeHandler>)(h => h.HandleKnowledgeUpdated(info))); } } }