コード例 #1
0
        public void Register(Resetable resetable)
        {
            if (!this._resetables.ContainsKey(resetable.ResetableIdentifier))
            {
                if (this.Debugging)
                {
                    Debug.Log(
                        string.Format(
                            "Environment {0} has registered resetables {1}",
                            this.name,
                            resetable.ResetableIdentifier));
                }

                this._resetables.Add(resetable.ResetableIdentifier, resetable);
            }
            else
            {
                if (this.Debugging)
                {
                    Debug.Log(
                        string.Format(
                            "Environment {0} already has configurable {1} registered",
                            this.name,
                            resetable.ResetableIdentifier));
                }
            }
        }
コード例 #2
0
ファイル: Resetable.cs プロジェクト: anly2/unity-maze-warp
    public static bool Unregister(this Resetable self)
    {
        if (Managers.Level == null)
        {
            return(false);
        }

        return(Managers.Level.UnregisterResetable(self));
    }
コード例 #3
0
ファイル: Resetable.cs プロジェクト: anly2/unity-maze-warp
    public static bool Register(this Resetable self)
    {
        if (Managers.Level == null)
        {
            return(false);
        }

        Managers.Level.RegisterResetable(self);
        return(true);
    }
コード例 #4
0
 // Use this for initialization
 void Start()
 {
     facingLeft         = false;
     anim               = GetComponent <Animator>();
     body               = GetComponent <Rigidbody2D> ();
     coll               = GetComponent <Collider2D>();
     wall_layer         = 1 << LayerMask.NameToLayer("Wall");
     weapon_script      = weapon.GetComponent <Weapon> ();
     weapon_cooldown    = new Resetable <float>(weapon_script.get_cooldown());
     crown_step.current = 0;
 }
コード例 #5
0
ファイル: Bomb.cs プロジェクト: anly2/unity-maze-warp
    IEnumerator Arm()
    {
        LitFlame();

        yield return(new WaitForTurns(fuseTurnDuration));

        Explode();

        yield return(new WaitForSeconds(Managers.Turn.turnDuration));

        Vector3 loc = transform.position;

        gameObject.SetActive(false);

        GameObject[] affected = GetAffected(loc);

        foreach (GameObject thing in affected)
        {
            if (!isDestructible(thing))
            {
                continue;
            }

            if (thing.tag == "Player")
            {
                Managers.Level.Warp();
                yield break;
            }

            Door door = thing.GetComponent <Door>();
            if (door != null)
            {
                door.Open();
                continue;
            }

            Resetable resetable = thing.GetComponent <Resetable>();
            if (resetable != null)
            {
                resetable.Reset();
                continue;
            }

            //else
            thing.SetActive(false);
        }
    }
コード例 #6
0
    void CutDown()
    {
        log.parent = null;
        log.tag    = "Grabbable";
        Resetable res = log.gameObject.AddComponent <Resetable>() as Resetable;

        if (log.GetComponent <Rigidbody>())
        {
            log.GetComponent <Rigidbody>().isKinematic = false;
            top.isKinematic = false;
            if (cutter)
            {
                log.GetComponent <Rigidbody>().AddForce(new Vector3(Mathf.Sign(transform.position.x - cutter.transform.position.x), 0, 0) * 0.5f, ForceMode.Impulse);
                top.GetComponent <Rigidbody>().AddForce(new Vector3(Mathf.Sign(transform.position.x - cutter.transform.position.x), 0, 0) * 0.5f, ForceMode.Impulse);
            }
        }
        Destroy(top.gameObject, 3f);
        Destroy(this);
    }
コード例 #7
0
ファイル: Reseter.cs プロジェクト: Chikanut/PR
 public virtual void RemoveResetable(Resetable observer)
 {
     _observers.Remove(observer);
 }
コード例 #8
0
ファイル: Reseter.cs プロジェクト: Chikanut/PR
 public virtual void AddResetable(Resetable observer)
 {
     _observers.Add(observer);
 }
コード例 #9
0
ファイル: LevelManager.cs プロジェクト: anly2/unity-maze-warp
 public bool UnregisterResetable(Resetable resetable)
 {
     return(this.resetables.Remove(resetable));
 }
コード例 #10
0
ファイル: LevelManager.cs プロジェクト: anly2/unity-maze-warp
    /* Manage Subscriptions */

    public void RegisterResetable(Resetable resetable)
    {
        this.resetables.Add(resetable);
    }
コード例 #11
0
 public void Unregister(Resetable resetable)
 {
     resetables.Remove(resetable);
 }
コード例 #12
0
 public void Register(Resetable resetable)
 {
     resetables.Add(resetable);
 }