Пример #1
0
 private void TestAndGrantStatusConditionAfterAttack(Boss owner, Pawn target)
 {
     target.TestAndGrant(_arguments.Value);
 }
Пример #2
0
 public void Attack(Pawn target, Damage damage)
 {
     var damageModified = ApplyModifier(damage);
     target.Hit(damageModified);
     AfterAttack(target);
 }
Пример #3
0
 protected virtual void AfterAttack(Pawn target)
 {
 }
 public virtual void Tick(Pawn pawn, Tick totalElapsed)
 {
 }
 public override void Tick(Pawn pawn, Tick totalElapsed)
 {
     if (!IsTriggered(totalElapsed)) return;
     pawn.Hit(new Damage(_data.Damage, Element.Poison));
 }
 public StatusCondition(Pawn pawn, StatusConditionActor actor, Tick duration)
 {
     _pawn = pawn;
     _actor = actor;
     _fsm = new StatusConditionFsm(duration);
 }
 public static StatusCondition CreateCharacter(Pawn pawn, StatusConditionType type, Tick duration)
 {
     var statusConditions = BattleBalance._.Data.Character.StatusConditions;
     switch (type)
     {
         case StatusConditionType.Poison:
             var data = statusConditions.GetPoison();
             return new StatusCondition(pawn, new StatusConditionPoisonActor(data), duration);
         default:
             Debug.LogError(LogMessages.EnumNotHandled(type));
             return null;
     }
 }
 public static StatusCondition Create(Pawn pawn, StatusConditionType type, Tick duration)
 {
     switch (pawn.StatusConditionGroup)
     {
         case StatusConditionGroup.Character:
             return CreateCharacter(pawn, type, duration);
         case StatusConditionGroup.Boss:
             return CreateBoss(pawn, type, duration);
         default:
             Debug.LogError(LogMessages.EnumNotHandled(type));
             return null;
     }
 }