예제 #1
0
 public virtual bool HitEvent(ObjectBase o)
 {
     if ((o.union != this.union || o.unionhit) && !o.invincibility && !this.throughObject)
     {
         int num = 1;
         if (o.standbarrier)
         {
             num *= 2;
         }
         if (o.guard == CharacterBase.GUARD.armar)
         {
             num *= 2;
         }
         this.damage = this.DamageMath(o) / num;
         o.hit       = true;
         this.hitflag[o.position.X, o.position.Y] = true;
         if (this.BarierCheck(o, this.damage))
         {
             if (this.damage == 0)
             {
                 return(true);
             }
             this.sound.PlaySE(SoundEffect.damageenemy);
             if (this.breaking && o.guard != CharacterBase.GUARD.guard && !o.slipping)
             {
                 o.Hp = 0;
             }
             else if (o.guard != CharacterBase.GUARD.noDamage)
             {
                 o.Hp -= this.damage;
             }
             o.whitetime = 4;
             this.hitflag[o.position.X, o.position.Y] = true;
             if (this.parent.blackOut)
             {
                 if (o.Hp > 0)
                 {
                     o.ShakeSingleStart(2, 32);
                 }
                 else
                 {
                     this.sound.PlaySE(SoundEffect.clincher);
                 }
             }
             o.Dameged(this);
             return(true);
         }
     }
     return(false);
 }