public void Reset(CharacterContext context)
 {
     context.SetState(
         CharacterWorldState.HasEnemyTargetInMeleeRange,
         false,
         FluidHTN.EffectType.Permanent);
 }
Esempio n. 2
0
 public void Reset(CharacterContext context)
 {
     context.SetState(
         CharacterWorldState.HasEnemyTargetAtSpellCastRange,
         true,
         FluidHTN.EffectType.Permanent);
 }
        public void Tick(CharacterContext context)
        {
            if (context.CurrentEnemyTarget == null)
            {
                return;
            }

            var dir = (context.CurrentEnemyTarget.Position - context.Self.Position);

            context.SetState(
                CharacterWorldState.HasEnemyTargetInMeleeRange,
                math.lengthsq(dir) <= 1,
                FluidHTN.EffectType.Permanent);
        }
Esempio n. 4
0
 public void ApplyUseCost(CharacterContext context, EffectType type)
 {
     if (context.ContextState == ContextState.Planning)
     {
         var currentMana = (int)context.GetState(CharacterWorldState.Mana);
         var newMana     = currentMana - _manaCost;
         if (type == EffectType.Permanent)
         {
             context.Self.Mana = newMana;
         }
         else
         {
             context.SetState(CharacterWorldState.Mana, (byte)newMana, type);
         }
     }
     else
     {
         context.Self.Mana -= _manaCost;
     }
 }