public SceneAnimation() { if (instance != null) { throw(new System.Exception("Error: Cannot create more than one instance of SceneAnimation!")); } instance = this; }
private void Awake() { if (instance == null) { instance = this; DontDestroyOnLoad(gameObject); } else { Destroy(gameObject); } CameraResize(); }
public MovingPlatform(int x, int y, int width, int height) : base(x, y, width, height) { this.SceneObjectAnimator = new SceneObjectAnimator(this); var a = new SceneAnimation() { AnimationType = SceneAnimationType.FullRepeat, RepeatStyle = RepeatProgressionStyle.Circular }; a.KeyFrames.Add(new SceneAnimationKeyFrame(this) { FrameType = KeyFrameType.Movement, TargetPos = this.Position + new Vector(100, 0), TotalFrames = 100 }); a.KeyFrames.Add(new SceneAnimationKeyFrame(this) { FrameType = KeyFrameType.Movement, TargetPos = this.Position, TotalFrames = 100 }); this.SceneObjectAnimator.AddAnimation("BackForth", a); this.SceneObjectAnimator.Play("BackForth"); }
/// <summary> /// Loads the timeline from the specified <see cref="FlaxEngine.SceneAnimation"/> asset. /// </summary> /// <param name="asset">The asset.</param> public void Load(SceneAnimation asset) { var data = asset.LoadTimeline(); Load(data); }
/// <summary> /// Saves the timeline data to the <see cref="FlaxEngine.SceneAnimation"/> asset. /// </summary> /// <param name="asset">The asset.</param> public void Save(SceneAnimation asset) { var data = Save(); asset.SaveTimeline(data); }
public List <SceneAnimation> Damage(Player Target, CreatureElement Element, ActionCategory Catagory, byte BaseAmount, byte AmountOfAttacks, SceneAnimation AttackAnimation, bool TriggersAttackFlags) { List <SceneAnimation> Animations = new List <SceneAnimation>(); if (TriggersAttackFlags) { Animations.AddRange( RunTriggerTypeEffect(EffectTrigger.BEFORE_ATTACKED, Target, false) ); } for (int i = 0; i < AmountOfAttacks; i++) { Animations.Add(new SceneAnimation(SceneAnimation.SceneAnimationType.ATTACK, new double[] { GetOpponent(Target).playerNumber, (double)Catagory }, "#ATTACK ANIMATION#")); //Animations.Add(AttackAnimation); //TODO: DONT PASS AS ARGUMENT //Animations.AddRange(Target.GiveDamage(Element, Catagory, BaseAmount, GetOpponent(Target).GetTotalStat(CreatureStats.STRENGTH), GetOpponent(Target).GetTotalStat(CreatureStats.INTELLIGENCE), Target.GetTotalStat(CreatureStats.ENDURANCE), Target.GetTotalStat(CreatureStats.WISDOM), GetOpponent(Target).HasElement(Element) ? 1.5 : 1, Target.GetElementEffectiveness(Element))); Animations.AddRange(Target.GiveDamage(Element, Catagory, BaseAmount, GetOpponent(Target))); if (Target.IsNotInArena()) { AmountOfAttacks = (byte)(i + 1); break; } } if (AmountOfAttacks > 1) { if (AmountOfAttacks == 2) { Animations.Add(new SceneAnimation(SceneAnimation.SceneAnimationType.ADD_MESSAGE, null, "Damage landed twice!")); } else { Animations.Add(new SceneAnimation(SceneAnimation.SceneAnimationType.ADD_MESSAGE, null, "Damage landed " + AmountOfAttacks + " times!")); } } if (Target.IsKilled()) { Animations.AddRange(RemoveFromArena(Target, true)); } else if (!Target.IsNotInArena()) { if (TriggersAttackFlags) { Animations.AddRange( RunTriggerTypeEffect(EffectTrigger.AFTER_ATTACKED, Target, false) ); } } return(Animations); }
public TimelineEvent() : base("Timeline") { ActiveAnimation = new SceneAnimation(); NewEditor.SetActiveAnimation(ActiveAnimation); }