示例#1
0
    protected void Start()
    {
        ChatAPI.AddListener(HandleMessage);
        SpecialAPI.AddListener(HandleEvent);


        //Special spe = new Special();
        //spe.m_playerCharacter = new PlayerCharacter();
        //spe.m_typeSpecial = Special.e_specialType.PARCHEMENT;
        //SpecialAPI.NotifyNewSpecial(spe);
    }
    public void Move(string TypeOfMove)
    {
        float y;
        float x;

        switch (TypeOfMove)
        {
        case "UP":
            y = m_currentTerritory.transform.position.y + 1;
            if (!(y > m_manager.m_nbrYTerritories - 1))
            {
                m_playerChar.transform.Translate(0f, 1f, 0f);
                float tempx = m_currentTerritory.gameObject.transform.position.x;
                float tempy = m_currentTerritory.gameObject.transform.position.y + 1;
                m_currentTerritory = GameObject.Find("y=" + (int)tempy + "x=" + (int)tempx);
                // TestForNearbyEnnemies();
            }
            break;

        case "DOWN":
            y = m_currentTerritory.transform.position.y - 1;
            if (!(y < 0))
            {
                m_playerChar.transform.Translate(0f, -1f, 0f);
                float tempx = m_currentTerritory.gameObject.transform.position.x;
                float tempy = m_currentTerritory.gameObject.transform.position.y - 1;
                m_currentTerritory = GameObject.Find("y=" + (int)tempy + "x=" + (int)tempx);
                // TestForNearbyEnnemies();
            }
            break;

        case "LEFT":
            x = m_currentTerritory.transform.position.x - 1;
            if (!(x < 0))
            {
                m_playerChar.transform.Translate(-1f, 0f, 0f);
                float tempx = m_currentTerritory.gameObject.transform.position.x - 1;
                float tempy = m_currentTerritory.gameObject.transform.position.y;
                m_currentTerritory = GameObject.Find("y=" + (int)tempy + "x=" + (int)tempx);
                // TestForNearbyEnnemies();
            }
            break;

        case "RIGHT":
            x = m_currentTerritory.transform.position.x + 1;
            if (!(x > m_manager.m_nbrXTerritories - 1))
            {
                m_playerChar.transform.Translate(1f, 0f, 0f);
                float tempx = m_currentTerritory.gameObject.transform.position.x + 1;
                float tempy = m_currentTerritory.gameObject.transform.position.y;
                m_currentTerritory = GameObject.Find("y=" + (int)tempy + "x=" + (int)tempx);
                // TestForNearbyEnnemies();
            }
            break;

        case "DIG":
            if (CurrentTerritory.GetComponent <Territory>().HasSpecial)
            {
                Special special = m_currentTerritory.GetComponent <Special>();
                SpecialAPI.NotifyNewSpecial(special);
            }
            else
            {
                //message nothing to dig?
            }
            break;
        }
    }