private void SetupUnitTurn(ref TurnBasedCharacterTemplate template) { if (template.TurnBased.InitiativeRoll < 0) { template.TurnBased.InitiativeRoll = RulesSystem.CalculateD20Roll(1); template.TurnBased.InitiativeStatBonus = RulesSystem.CalculateStatsWithLog(template.Stats.Get(Stats.Dexterity), (int)template.Stats.GetValue(Stats.Level)); var resultEvent = World.Get <RulesSystem>().Post(new RollInitiativeEvent(template, template.TurnBased.InitiativeRoll, template.TurnBased.InitiativeStatBonus)); template.TurnBased.InitiativeStatBonus = resultEvent.Bonus; var logSystem = World.Get <GameLogSystem>(); logSystem.StartNewMessage(out var logMsg, out var hoverMsg); logMsg.Append(template.GetName()); logMsg.Append(" initiative: "); logMsg.Append(resultEvent.Total); logMsg.Append(" "); hoverMsg.AppendNewLine(RulesSystem.LastQueryString.ToString()); logSystem.PostCurrentStrings(GameLogSystem.NormalColor); } else { template.TurnBased.InitiativeStatBonus = RulesSystem.CalculateStatsWithLog(template.Stats.Get(Stats.Dexterity), (int)template.Stats.GetValue(Stats.Level)); var resultEvent = World.Get <RulesSystem>().Post(new RollInitiativeEvent(template, template.TurnBased.InitiativeRoll, template.TurnBased.InitiativeStatBonus)); template.TurnBased.InitiativeStatBonus = resultEvent.Bonus; } template.TurnBased.StandardActions = 1; template.TurnBased.MinorActions = 1; template.TurnBased.MoveActions = 1; template.TurnBased.TurnNumber = TurnNumber; }
public void RuleEventRun(ref CheckHitEvent context) { RulesSystem.LastQueryString.Append(context.Origin.GetName()); RulesSystem.LastQueryString.Append(": "); var bonus = RulesSystem.CalculateStatsWithLog(context.Origin.Stats.Get(_component.Value.Stat), _component.Value.AddLevel ? context.Origin.Level : -1); context.AttackTotal += bonus; RulesSystem.LastQueryString.AppendNewLine(); }
public void RuleEventRun(ref CheckHitEvent context) { for (int i = 0; i < _component.Value.Entries.Count; i++) { var entry = _component.Value.Entries[i]; if (entry.TargetDefense == context.TargetDefense) { RulesSystem.LastQueryString.Append(context.Target.GetName()); RulesSystem.LastQueryString.Append(": "); var bonus = RulesSystem.CalculateStatsWithLog(context.Target.Stats.Get(entry.TargetStat)); context.AttackTotal += bonus; RulesSystem.LastQueryString.AppendNewLine(); } } }