// stuff done after animation private void AttackPart2(Damageable defender, int attackRoll) { // only trigger effects if the local player is the owner if (NetInterface.Get().localPlayer == Controller) { TriggerOnAttackEvents(this, new OnAttackArgs() { target = defender }); } if (NetInterface.Get().localPlayer == defender.Controller) { defender.TriggerOnDefendEvents(this, new OnDefendArgs() { attacker = this }); } // perform damage calc defender.TakeDamage(attackRoll, SourceCard); TakeDamage(KeywordUtils.GetDefenderValue(defender.SourceCard), SourceCard); // gray out creature to show it has already acted UpdateHasActedIndicators(); // trigger after combat stuff // poison if (HasKeyword(Keyword.Poison) && defender.SourceCard is CreatureCard) { GameManager.Instance.kill((defender.SourceCard as CreatureCard).Creature); } }
public void TypeFlagsToSchemaFlagsTest() { Assert.Equal(SchemaFlags.None, KeywordUtils.TypeFlagsToSchemaFlags(0)); Assert.Equal(SchemaFlags.TypeAll, KeywordUtils.TypeFlagsToSchemaFlags(TypeFlags.All)); Assert.Equal(SchemaFlags.TypeArray, KeywordUtils.TypeFlagsToSchemaFlags(TypeFlags.Array)); Assert.Equal(SchemaFlags.TypeBoolean, KeywordUtils.TypeFlagsToSchemaFlags(TypeFlags.Boolean)); Assert.Equal(SchemaFlags.TypeInteger, KeywordUtils.TypeFlagsToSchemaFlags(TypeFlags.Integer)); Assert.Equal(SchemaFlags.TypeNull, KeywordUtils.TypeFlagsToSchemaFlags(TypeFlags.Null)); Assert.Equal(SchemaFlags.TypeNumber, KeywordUtils.TypeFlagsToSchemaFlags(TypeFlags.Number)); Assert.Equal(SchemaFlags.TypeObject, KeywordUtils.TypeFlagsToSchemaFlags(TypeFlags.Object)); Assert.Equal(SchemaFlags.TypeString, KeywordUtils.TypeFlagsToSchemaFlags(TypeFlags.String)); }