private void InvokeAttackZoneEntered(CreatureBehaviour creature)
 {
     var handler = AttackZoneEntered;
     if (handler == null) {
             return;
     }
     var e = new BehaviourEventArgs<CreatureBehaviour>(creature);
     AttackZoneEntered(this, e);
 }
        private void OnTargetHit(object sender, BehaviourEventArgs<SnowballBehaviour> e)
        {
            // die, snowball, die
            VoidEnvironmental(e.Behaviour);

            var target = sender as TargetableEntityBehaviour;
            target.TargetHit -= OnTargetHit;
            if (target is CreatureBehaviour) {
                var creature = target as CreatureBehaviour;
                if (creature.IsRetreating) {
                    return;
                }
            }
            target.HideSymbols();
            target.ClearControllers();
            InvokeEffectsReleased(target.HitEffects);
        }
 internal void InvokeTargetHit(SnowballBehaviour snowball)
 {
     var handler = TargetHit;
     if (handler == null) {
         return;
     }
     var e = new BehaviourEventArgs<SnowballBehaviour>(snowball);
     handler(this, e);
 }
 private void OnAttackZoneEntered(object sender, BehaviourEventArgs<CreatureBehaviour> e)
 {
     var creature = e.Behaviour;
     if (creature != null) {
         ApplyEffects(creature.AttackEffects);
     }
 }