private void TestAndGrantStatusConditionAfterAttack(Boss owner, Pawn target) { target.TestAndGrant(_arguments.Value); }
public void Attack(Pawn target, Damage damage) { var damageModified = ApplyModifier(damage); target.Hit(damageModified); AfterAttack(target); }
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; } }