public override void Run(Combat.Character character) { var animationnumber = EvaluationHelper.AsInt32(character, AnimationNumber, 0); var drawunder = EvaluationHelper.AsBoolean(character, DrawUnder, false); var offset = EvaluationHelper.AsPoint(character, DrawPosition, new Point(0, 0)); var randomdisplacement = EvaluationHelper.AsInt32(character, RandomDisplacement, 0); var data = new Combat.ExplodData(); data.Scale = Vector2.One; data.AnimationNumber = animationnumber; data.CommonAnimation = true; data.Location = (Vector2)offset; data.PositionType = PositionType.P1; data.RemoveTime = -2; data.DrawOnTop = false; data.OwnPalFx = true; data.SpritePriority = drawunder ? -9 : 9; data.Random = new Point(randomdisplacement / 2, randomdisplacement / 2); data.Transparency = new Blending(); data.Creator = character; data.Offseter = character; var explod = new Combat.Explod(character.Engine, data); if (explod.IsValid) { explod.Engine.Entities.Add(explod); } }
public override void Run(Combat.Character character) { int?time = EvaluationHelper.AsInt32(character, Time, 30); var buffertime = EvaluationHelper.AsInt32(character, EndCommandBufferTime, 0); var movetime = EvaluationHelper.AsInt32(character, MoveTime, 0); var pausebg = EvaluationHelper.AsBoolean(character, PauseBackgrounds, true); var power = EvaluationHelper.AsInt32(character, PowerAdd, 0); #warning Documentation states that default should be 30. Testing looks to be 100. var animationnumber = EvaluationHelper.AsInt32(character, AnimationNumber, 100); var soundid = EvaluationHelper.AsSoundId(character, SoundId, null); var animationposition = EvaluationHelper.AsPoint(character, AnimationPosition, new Point(0, 0)); var darkenscreen = EvaluationHelper.AsBoolean(character, DarkenScreen, true); var p2defmul = EvaluationHelper.AsSingle(character, P2DefenseMultiplier, null); var unhittable = EvaluationHelper.AsBoolean(character, Unhittable, true); if (time == null) { return; } var pause = character.Engine.SuperPause; pause.Set(character, time.Value, buffertime, movetime, false, pausebg); character.BasePlayer.Power += power; var data = new Combat.ExplodData(); data.PositionType = PositionType.P1; data.Location = (Vector2)animationposition; data.RemoveTime = -2; data.CommonAnimation = EvaluationHelper.IsCommon(AnimationNumber, true); data.AnimationNumber = animationnumber; data.Scale = Vector2.One; data.SuperMove = true; data.Creator = character; data.Offseter = character; data.DrawOnTop = true; var explod = new Combat.Explod(character.Engine, data); if (explod.IsValid) { explod.Engine.Entities.Add(explod); } if (soundid != null) { Audio.SoundManager soundmanager = SoundId.IsCommon(true) ? character.Engine.CommonSounds : character.SoundManager; soundmanager.Play(soundid.Value); } }
public override void Run(Combat.Character character) { Combat.ExplodData data = CreateExplodData(character); if (data == null) { return; } data.Creator = character; data.Offseter = (data.PositionType == PositionType.P2) ? character.GetOpponent() : character; Combat.Explod explod = new Combat.Explod(character.Engine, data); if (explod.IsValid == true) { explod.Engine.Entities.Add(explod); } }
Combat.ExplodData CreateExplodData(Combat.Character character) { if (character == null) throw new ArgumentNullException("character"); Int32? animationnumber = EvaluationHelper.AsInt32(character, AnimationNumber, null); Int32 id = EvaluationHelper.AsInt32(character, Id, -1); Point location = EvaluationHelper.AsPoint(character, Position, new Point(0, 0)); Int32 horizfacing = EvaluationHelper.AsInt32(character, Facing, 1); Int32 vertfacing = EvaluationHelper.AsInt32(character, VerticalFacing, 1); Int32 bindtime = EvaluationHelper.AsInt32(character, BindTime, 0); Vector2 velocity = EvaluationHelper.AsVector2(character, Velocity, new Vector2(0, 0)); Vector2 acceleration = EvaluationHelper.AsVector2(character, Acceleration, new Vector2(0, 0)); Point randomdisplacement = EvaluationHelper.AsPoint(character, RandomDisplacement, new Point(0, 0)); Int32 removetime = EvaluationHelper.AsInt32(character, RemoveTime, -2); Boolean supermove = EvaluationHelper.AsBoolean(character, Supermove, false); Int32 supermovetime = EvaluationHelper.AsInt32(character, SupermoveTime, 0); Int32 pausetime = EvaluationHelper.AsInt32(character, PauseMoveTime, 0); Vector2 scale = EvaluationHelper.AsVector2(character, Scale, new Vector2(1, 1)); Int32 spritepriority = EvaluationHelper.AsInt32(character, SpritePriority, 0); Boolean ontop = EvaluationHelper.AsBoolean(character, DrawOnTop, false); Boolean ownpalette = EvaluationHelper.AsBoolean(character, OwnPalette, false); Boolean removeongethit = EvaluationHelper.AsBoolean(character, RemoveOnGetHit, false); Boolean ignorehitpause = EvaluationHelper.AsBoolean(character, ExplodIgnoreHitPause, true); Point? alpha = EvaluationHelper.AsPoint(character, Alpha, null); if (animationnumber == null) return null; SpriteEffects flip = SpriteEffects.None; if (horizfacing == -1) flip ^= SpriteEffects.FlipHorizontally; if (vertfacing == -1) flip ^= SpriteEffects.FlipVertically; Blending transparency = Transparency; if (transparency.BlendType == BlendType.Add && transparency.SourceFactor == 0 && transparency.DestinationFactor == 0) { if (alpha != null) { transparency = new Blending(BlendType.Add, alpha.Value.X, alpha.Value.Y); } else { transparency = new Blending(); } } Combat.ExplodData data = new Combat.ExplodData(); data.CommonAnimation = EvaluationHelper.IsCommon(AnimationNumber, false); data.AnimationNumber = animationnumber.Value; data.Id = id; data.RemoveTime = removetime; data.Location = (Vector2)location; data.PositionType = PositionType; data.Velocity = velocity; data.Acceleration = acceleration; data.Flip = flip; data.BindTime = bindtime; data.Random = randomdisplacement; data.SuperMove = supermove; data.SuperMoveTime = supermovetime; data.PauseTime = pausetime; data.Scale = scale; data.SpritePriority = spritepriority; data.DrawOnTop = ontop; data.OwnPalFx = ownpalette; data.RemoveOnGetHit = removeongethit; data.IgnoreHitPause = ignorehitpause; data.Transparency = transparency; return data; }
Combat.ExplodData CreateExplodData(Combat.Character character) { if (character == null) { throw new ArgumentNullException("character"); } Int32? animationnumber = EvaluationHelper.AsInt32(character, AnimationNumber, null); Int32 id = EvaluationHelper.AsInt32(character, Id, -1); Point location = EvaluationHelper.AsPoint(character, Position, new Point(0, 0)); Int32 horizfacing = EvaluationHelper.AsInt32(character, Facing, 1); Int32 vertfacing = EvaluationHelper.AsInt32(character, VerticalFacing, 1); Int32 bindtime = EvaluationHelper.AsInt32(character, BindTime, 0); Vector2 velocity = EvaluationHelper.AsVector2(character, Velocity, new Vector2(0, 0)); Vector2 acceleration = EvaluationHelper.AsVector2(character, Acceleration, new Vector2(0, 0)); Point randomdisplacement = EvaluationHelper.AsPoint(character, RandomDisplacement, new Point(0, 0)); Int32 removetime = EvaluationHelper.AsInt32(character, RemoveTime, -2); Boolean supermove = EvaluationHelper.AsBoolean(character, Supermove, false); Int32 supermovetime = EvaluationHelper.AsInt32(character, SupermoveTime, 0); Int32 pausetime = EvaluationHelper.AsInt32(character, PauseMoveTime, 0); Vector2 scale = EvaluationHelper.AsVector2(character, Scale, new Vector2(1, 1)); Int32 spritepriority = EvaluationHelper.AsInt32(character, SpritePriority, 0); Boolean ontop = EvaluationHelper.AsBoolean(character, DrawOnTop, false); Boolean ownpalette = EvaluationHelper.AsBoolean(character, OwnPalette, false); Boolean removeongethit = EvaluationHelper.AsBoolean(character, RemoveOnGetHit, false); Boolean ignorehitpause = EvaluationHelper.AsBoolean(character, ExplodIgnoreHitPause, true); Point? alpha = EvaluationHelper.AsPoint(character, Alpha, null); if (animationnumber == null) { return(null); } SpriteEffects flip = SpriteEffects.None; if (horizfacing == -1) { flip ^= SpriteEffects.FlipHorizontally; } if (vertfacing == -1) { flip ^= SpriteEffects.FlipVertically; } Blending transparency = Transparency; if (transparency.BlendType == BlendType.Add && transparency.SourceFactor == 0 && transparency.DestinationFactor == 0) { if (alpha != null) { transparency = new Blending(BlendType.Add, alpha.Value.X, alpha.Value.Y); } else { transparency = new Blending(); } } Combat.ExplodData data = new Combat.ExplodData(); data.CommonAnimation = EvaluationHelper.IsCommon(AnimationNumber, false); data.AnimationNumber = animationnumber.Value; data.Id = id; data.RemoveTime = removetime; data.Location = (Vector2)location; data.PositionType = PositionType; data.Velocity = velocity; data.Acceleration = acceleration; data.Flip = flip; data.BindTime = bindtime; data.Random = randomdisplacement; data.SuperMove = supermove; data.SuperMoveTime = supermovetime; data.PauseTime = pausetime; data.Scale = scale; data.SpritePriority = spritepriority; data.DrawOnTop = ontop; data.OwnPalFx = ownpalette; data.RemoveOnGetHit = removeongethit; data.IgnoreHitPause = ignorehitpause; data.Transparency = transparency; return(data); }