예제 #1
0
 public ExplosionData()
 {
     ExplodeFX   = new BattleFX();
     IntroFX     = new List <BattleFX>();
     Emitter     = new EmptyCircleSquareEmitter();
     TileEmitter = new EmptyFiniteEmitter();
 }
예제 #2
0
 public CircleSquareHitbox(Character user, Alignment targetAlignments, bool hitTiles, TileAlignment burstTiles, Loc origin, FiniteEmitter tileEmitter,
                           CircleSquareEmitter emitter, int maxRadius, int speed, int delay, AreaLimit hitArea, Dir8 dir)
     : base(user, origin * GraphicsManager.TileSize, tileEmitter, delay)
 {
     TargetAlignments = targetAlignments;
     HitTiles         = hitTiles;
     BurstTiles       = burstTiles;
     Origin           = origin;
     MaxRadius        = maxRadius;
     Speed            = (speed > 0) ? speed : Math.Max(1, (int)Math.Ceiling(MaxRadius * 1.4142136 * GraphicsManager.MAX_FPS));
     HitArea          = hitArea;
     Dir     = dir;
     Emitter = (CircleSquareEmitter)emitter.Clone();
     Emitter.SetupEmit(MapLoc, user.CharDir, HitArea, MaxRadius * GraphicsManager.TileSize + GraphicsManager.TileSize / 2, Speed * GraphicsManager.TileSize);
 }
예제 #3
0
 public ExplosionData(ExplosionData other)
 {
     TargetAlignments = other.TargetAlignments;
     HitTiles         = other.HitTiles;
     Range            = other.Range;
     Speed            = other.Speed;
     ExplodeFX        = new BattleFX(other.ExplodeFX);
     IntroFX          = new List <BattleFX>();
     foreach (BattleFX fx in other.IntroFX)
     {
         IntroFX.Add(new BattleFX(fx));
     }
     Emitter     = (CircleSquareEmitter)other.Emitter.Clone();
     TileEmitter = (FiniteEmitter)other.TileEmitter.Clone();
 }