/// <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); } } }
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; } }
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; } }
/// <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; }
override public void CharacterEnter(Character p) { if (p == null) { return; } p.EnterArea(Areas.Grabbable); p.grab = this; }
/// <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); } }
/// <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); } } }
/// <summary> /// Notify Character is on ladder area /// </summary> virtual public void EnableLadder(Character p) { p.ladder = this; p.EnterArea(Areas.Ladder); }
virtual public void EnableFence(Character p) { p.fence = this; p.EnterArea(Areas.Fence); }