Esempio n. 1
0
 public SceneAnimation()
 {
     if (instance != null)
     {
         throw(new System.Exception("Error: Cannot create more than one instance of SceneAnimation!"));
     }
     instance = this;
 }
Esempio n. 2
0
    private void Awake()
    {
        if (instance == null)
        {
            instance = this;
            DontDestroyOnLoad(gameObject);
        }
        else
        {
            Destroy(gameObject);
        }

        CameraResize();
    }
Esempio n. 3
0
        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");
        }
Esempio n. 4
0
        /// <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);
        }
Esempio n. 5
0
        /// <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);
        }
Esempio n. 6
0
        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);
 }