Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
 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();
         }
     }
 }