コード例 #1
0
        /// <summary>
        /// Character enter: set track property and call onEnter
        /// </summary>
        override public void CharacterEnter(Character character)
        {
            Debug.LogFormat("CharacterEnter: {0}", character);
            // only the first track is enabled
            if (character.track == null)
            {
                if (!characterState.ValidStates(character))
                {
                    return;
                }

                Log.Silly("(Track) Enter " + character.gameObject.GetFullName());

                // delegate when to move to character class
                // this prevent fights between tile modifiers
                character.onBeforeMove += Accelerate;
                character.EnterArea(Areas.Track);
                character.track = new TrackData(this);

                if (onEnter != null)
                {
                    onEnter(character);
                }
            }
        }
コード例 #2
0
 override public void CharacterEnter(Character p)
 {
     // only the first one enable the rope
     if (p.rope == null)
     {
         p.EnterArea(Areas.Rope);
         p.rope      = rope;
         p.ropeIndex = index;
     }
 }
コード例 #3
0
ファイル: Track.cs プロジェクト: chaosrx/unity-platformer
 override public void CharacterEnter(Character p)
 {
     // only the first one enable the rope
     if (p.track == null)
     {
         p.EnterArea(Areas.Track);
         p.track          = this;
         p.worldVelocity += velocity;
     }
 }
コード例 #4
0
        /// <summary>
        /// notify Character is in area item
        /// </summary>
        public virtual void Enter(Character p)
        {
            if (p == null)
            {
                return;
            }

            p.EnterArea(Areas.Item);
            p.item = this;
        }
コード例 #5
0
ファイル: Grab.cs プロジェクト: chaosrx/unity-platformer
        override public void CharacterEnter(Character p)
        {
            if (p == null)
            {
                return;
            }

            p.EnterArea(Areas.Grabbable);
            p.grab = this;
        }
コード例 #6
0
ファイル: Liquid.cs プロジェクト: yhnu/unity-platformer
        /// <summary>
        /// if a Hitbox(EnterAreas) enter -> enterArea
        /// </summary>
        public virtual void OnTriggerEnter2D(Collider2D o)
        {
            HitBox h = o.GetComponent <HitBox>();

            if (h && h.type == HitBoxType.EnterAreas)
            {
                Character p = h.owner.GetComponent <Character>();
                p.liquid = this;
                p.EnterArea(Areas.Liquid);
            }
        }
コード例 #7
0
        /// <summary>
        /// Enable track
        /// </summary>
        override public void CharacterEnter(Character character)
        {
            Debug.LogFormat("CharacterEnter: {0}", character);
            // only the first one enable the track
            if (character.track == null)
            {
                if (!characterState.ValidStates(character))
                {
                    return;
                }

                Log.Silly("(Track) Enter " + character.gameObject.GetFullName());
                character.onBeforeMove += Accelerate;
                character.EnterArea(Areas.Track);
                character.track = new TrackData(this);
                //character.worldVelocity += velocity;
                if (onEnter != null)
                {
                    onEnter(character);
                }
            }
        }
コード例 #8
0
 /// <summary>
 /// Notify Character is on ladder area
 /// </summary>
 virtual public void EnableLadder(Character p)
 {
     p.ladder = this;
     p.EnterArea(Areas.Ladder);
 }
コード例 #9
0
 virtual public void EnableFence(Character p)
 {
     p.fence = this;
     p.EnterArea(Areas.Fence);
 }