示例#1
0
 public override void OnSelfUnitCollisionStart(Collider selfUnit)
 {
     base.OnSelfUnitCollisionStart(selfUnit);
     if (selfUnit.gameObject.GetComponent <DestoryMe>() != null)
     {
         if (!selfUnit.gameObject.GetComponent <DestoryMe>().couldDestory)
         {
             selfUnit.gameObject.GetComponent <DestoryMe>().couldDestory = true;
         }
         else
         {
             GoldCarrier goldCarrier = selfUnit.GetComponent <GoldCarrier>();
             if (goldCarrier != null)
             {
                 MineMountain mineMountain = this.GetComponent <MineMountain>();
                 mineMountain.getMineFromCar(goldCarrier.popGold());
             }
             selfUnit.gameObject.SendMessage(GameobjBase.TryDestroyFUNC, SendMessageOptions.DontRequireReceiver);
             //Destroy(selfUnit.gameObject);
         }
     }
     else
     {
         selfUnit.gameObject.AddComponent <DestoryMe>();
         selfUnit.gameObject.GetComponent <DestoryMe>().couldDestory = true;
     }
 }
示例#2
0
 /// <summary>
 /// 清空底部面板信息
 /// </summary>
 /// <param name="message"></param>
 public void Handle(cancelMountainEvent message)
 {
     mineSelected = null;
     GoldAll.text = "";
     //  Train.text ="";
     GoldGet.text = "";
     //  GoldTime.text ="";
 }
示例#3
0
 public MineMountain mine;   //创建单位的矿山
 /// <summary>
 /// UI创建单位的消息
 /// </summary>
 /// <param name="id">单位ID</param>
 /// <param name="dest">单位目标三维坐标</param>
 /// <param name="Mine">生产单位的矿山</param>
 /// <param name="_subject"></param>
 /// <param name="_object"></param>
 public CreateUnitEvent(int id, Vector3 dest, int player = GameobjBase.PLAYER, MineMountain Mine = null)
     : base(null, "Create", null)
 {
     ID          = id;
     destination = dest;
     mine        = Mine;
     this.player = player;
 }
示例#4
0
    public void Handle(cancelMountainEvent message)
    {
        mine = null;
        foreach (GameObject o in cards)
        {
            NGUITools.Destroy(o);
        }

        cards.Clear();
    }
    private void tryCancelMine()
    {
        if (Application.platform == RuntimePlatform.WindowsEditor || Application.platform == RuntimePlatform.WindowsPlayer)
        {
            if (Input.GetMouseButtonDown(0))
            {
                if (Physics.Raycast(UICamera.mainCamera.ScreenPointToRay(Input.mousePosition), 20))//检测是否点击到NGUI
                {
                    return;
                }
                Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                RaycastHit rh;
                Physics.Raycast(ray, out rh);
                if (rh.collider == null)
                {
                    return;
                }
                MineMountain mine = rh.collider.gameObject.GetComponent <MineMountain>();
                if (mine == null)
                {//没点击到矿山
                    mineSelected = null;
                    UnityEventCenter.SendMessage <cancelMountainEvent>(new cancelMountainEvent(null, null));
                }
            }
        }
        else
        {
            if (Input.touchCount <= 0)
            {
                return;
            }
            Touch touch = Input.GetTouch(0);

            if (touch.phase == TouchPhase.Began && touch.tapCount >= 2)
            {
                Ray        ray = Camera.main.ScreenPointToRay(touch.position);
                RaycastHit rh;
                Physics.Raycast(ray, out rh);
                if (rh.collider == null)
                {
                    return;
                }
                MineMountain mine = rh.collider.gameObject.GetComponent <MineMountain>();
                if (mine == null)
                {//没点击到矿山
                    mineSelected = null;
                    UnityEventCenter.SendMessage <cancelMountainEvent>(new cancelMountainEvent(null, null));
                }
            }
        }
    }
    /// <summary>
    /// 矿山选择接口
    /// </summary>
    /// <param name="message"></param>
    public void Handle(MineSelectEvent message)
    {
        MineMountain temp = message.getMine();

        if (message.getObject().GetComponent <GameobjBase>().owner != GameobjBase.PLAYER)
        {
            message.setCancel(true);
            return;//不可选择非玩家的矿山
        }

        if (temp != null)
        {
            mineSelected = temp;
        }
    }
示例#7
0
    /// <summary>
    /// 获取当前矿山后改变底部面板信息
    /// </summary>
    /// <param name="message"></param>
    public void Handle(MineSelectEvent message)
    {
        MineMountain temp = message.getMine();

        if (temp.gameObject.GetComponent <GameobjBase>().getOwner() == GameobjBase.PLAYER)
        {
            mineSelected = temp;
        }
        else
        {
            mineSelected = null;
            GoldAll.text = "";
            GoldGet.text = "";
        }
    }
示例#8
0
    void OnTriggerEnter(Collider other)
    {
        GameobjBase  gBase = other.GetComponent <GameobjBase>();
        MineMountain mine  = other.GetComponent <MineMountain>();

        if (mine == null)
        {
            return;
        }
        if (!mineExp && mine.isSmallMine)
        {
            //是建筑且是矿山的时候
            mineExp = other.gameObject;
            HoldMineDelay();
        }
    }
示例#9
0
    public override void OnEnemyCollisionStart(Collider enemy)
    {
        MineMountain       mineMountain       = this.GetComponent <MineMountain>();
        ExplorationTramcar explorationTramcar = enemy.GetComponent <ExplorationTramcar>();

        base.OnEnemyCollisionStart(enemy);
        if (!(mineMountain.isSmallMine && explorationTramcar))
        {
            GoldCarrier goldCarrier = enemy.GetComponent <GoldCarrier>();
            if (goldCarrier != null)
            {
                mineMountain.getMineFromCar(goldCarrier.popGold());
            }
            enemy.gameObject.SendMessage(GameobjBase.TryDestroyFUNC);
            //Destroy(enemy.gameObject);
        }
    }
示例#10
0
    public void Handle(MineSelectEvent message)
    {
        MineMountain temp = message.getMine();

        if (temp.gameObject.GetComponent <GameobjBase>().getOwner() == GameobjBase.PLAYER)
        {
            mine = temp;
            initCards();
        }
        else
        {
            mine = null;
            foreach (GameObject o in cards)
            {
                NGUITools.Destroy(o);
            }

            cards.Clear();
        }
    }
 public MineStateChangeEvent(MineMountain mine) : base(mine.gameObject, "StateChange", mine.gameObject)
 {
     this.mine = mine;
 }
 public MineMoutainSpawnerEvent(MineMountain mine)
     : base(mine.gameObject, "MineMoutainSpawne", null)
 {
     this.mine = mine;
 }