Example #1
0
    protected override void Update()
    {
        base.Update();



        if (Arrived())
        {
            GetComponent <Animation>().Stop();
        }
        else
        {
            GetComponent <Animation>().Play();
        }

        if (m_canGoToPlayer == true)
        {
            if (m_dead == false)
            {
                m_agent.destination = GameMediator.GetPlayer().transform.position;
            }
        }

        TimerManager();
    }
Example #2
0
 public void Test()
 {
     SceneManager.LoadScene("SampleScene");
     Resume();
     GameMediator.GetWaveManager().ResetEnemies();
     GameMediator.UpdateEnemiesKilled(0);
 }
        public virtual void LoadContent(GraphicsDevice graphicsDevice,
                                        ContentManager contentManager, ScreenDescription screenDescription)
        {
            ExecutionState = InnerExecutionState.INIT;
            var width  = (int)screenDescription.ScreenSizeInformation.WidhtInnerScreen;
            var height = (int)screenDescription.ScreenSizeInformation.HeightInnerScreen;

            _spriteBatch = new SpriteBatch(graphicsDevice);

            List <GameObject> gameObjects = new List <GameObject>();

            foreach (GameObjectDescription description in screenDescription.Items)
            {
                var texture = contentManager.Load <Texture2D>(description.AssetName);
                var obj     = GameObjectBuilder.Create()
                              .SetPosition(description.CurrentPosition.X, description.CurrentPosition.Y)
                              .SetOrientation(description.ObjectOrientation)
                              .SetAssetName(description.AssetName)
                              .SetSize((int)description.Width, (int)description.Height)
                              .SetObjectType(description.GameObjectType)
                              .Build(contentManager);
                gameObjects.Add(obj);
            }

            var background = contentManager.Load <Texture2D>(screenDescription.AssetNameBackground);

            _gameMediator = new GameMediator(screenDescription.ScreenSizeInformation);
            _gameMediator.Set(gameObjects.ToArray());

            _gameMediator.SetBackground(background);

            // TODO remove after test
            _gameMediator.Set(contentManager.Load <SpriteFont>("Labels/LabelLarge"));
        }
Example #4
0
    public override void Death()
    {
        base.Death();
        int nb = GameMediator.EnemiesKilled();

        nb++;
        GameMediator.UpdateEnemiesKilled(nb);
        m_dead = true;
        Destroy(gameObject);
    }
        public override void Execute(INotification notification)
        {
            var             a     = notification.Body as EnemyItem;
            PlayerDataProxy proxy = MyFacade.Instance.RetrieveProxy(PlayerDataProxy.NAME) as PlayerDataProxy;

            proxy.GetReward(a.GetModel().Reward *Random.Range(0, 100));
            GameMediator mediator = MyFacade.Instance.RetrieveMediator(GameMediator.NAME) as GameMediator;

            mediator.RemoveItem(a);
            Object.Destroy(a.gameObject);
        }
Example #6
0
    public void LaunchGame()
    {
        Time.timeScale   = 1;
        Cursor.lockState = CursorLockMode.Locked;

        if (GameMediator.GetPlayer() != null)
        {
            GameMediator.GetPlayer().LockControls(false);
        }

        SceneManager.LoadScene("SampleScene");
        Time.timeScale = 1;
    }
Example #7
0
 private static Form GetContainerView()
 {
     Form containerView = null;
     try
     {
         var gameMediator = new GameMediator();
         containerView = gameMediator.GetContainerView();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, Resources.Title_Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     return containerView;
 }
Example #8
0
    protected override void Attack()
    {
        m_attackBox.center  = GameMediator.GetPlayer().transform.position;
        m_attackBox.center += GameMediator.GetPlayer().transform.forward * 1.125f;
        Collider[] hitColliders = Physics.OverlapBox(m_attackBox.center, m_attackBox.extents, Quaternion.identity);

        int i = 0;

        while (i < hitColliders.Length)
        {
            Enemy enemy = hitColliders[i].GetComponent <Enemy>();
            if (enemy != null)
            {
                enemy.Hit(m_damage);
            }
            i++;
        }

        GetComponent <Animation>().Play();
    }
Example #9
0
    private Vector3 GetClosestWindowPosition()
    {
        Vector3 closest     = Vector3.one;
        float   sqrDistance = Mathf.Infinity;

        for (int i = 0; i < GameMediator.GetWindows().Count; i++)
        {
            if (GameMediator.GetWindows()[i] != null)
            {
                float actualSqrDistance = (GameMediator.GetWindows()[i].transform.position - transform.position).sqrMagnitude;

                if (actualSqrDistance < sqrDistance)
                {
                    sqrDistance = actualSqrDistance;
                    closest     = GameMediator.GetWindows()[i].transform.position;
                }
            }
        }
        return(closest);
    }
Example #10
0
    void CheckIfEnd()
    {
        if (GameMediator.GetPlayer().m_CurrentLife <= 0)
        {
            test          = true;
            m_Result.text = "LOOSE";
        }
        else if (GameMediator.GetWaveManager().m_end&& GameMediator.IsAllEnemiesKilled())
        {
            test          = true;
            m_Result.text = "WIN";
        }
        else
        {
            return;
        }

        m_CanvasEnd.gameObject.SetActive(true);
        Time.timeScale   = 0;
        Cursor.lockState = CursorLockMode.None;
        GameMediator.GetPlayer().LockControls(true);
    }
Example #11
0
    protected override void Start()
    {
        Debug.LogWarning("For Jump : Put tag 'Ground' on the ground");

        base.Start();

        m_AmmoCount = m_MaxAmmoCount;
        m_IsJumping = false;
        m_Direction = Vector3.zero;
        m_Rb        = GetComponent <Rigidbody>();

        InitInputs();

        m_Weapons = new List <Weapon>();
        m_Weapons.Add(GameObject.FindObjectOfType <Punch>());
        m_Weapons[0].gameObject.SetActive(true);
        m_Weapons.Add(GameObject.FindObjectOfType <Submachine>());
        m_Weapons[m_Weapons.Count - 1].gameObject.SetActive(false);

        GameMediator.RegisterPlayer(this);

        Cursor.lockState = CursorLockMode.Locked;
    }
Example #12
0
        public override void Execute(INotification notification)
        {
            Debug.Log("Sub2");


            var otherProxy = MyFacade.Instance.RetrieveProxy(OtherDataProxy.NAME) as OtherDataProxy;

            if (otherProxy.GetLives() <= 0)
            {
                return;
            }

            GameMediator mediator = Facade.RetrieveMediator(GameMediator.NAME) as GameMediator;

            mediator.Hide();

            int id = (int)notification.Body;

            LevelProxy levelProxy = Facade.RetrieveProxy(LevelProxy.NAME) as LevelProxy;
            EnemyProxy enemyProxy = Facade.RetrieveProxy(EnemyProxy.NAME) as EnemyProxy;
            var        level      = levelProxy.LevelsLists[id];

            foreach (var enemy in level.Enemies)
            {
                var a  = mediator.InstanceEnemyItem();
                var aa = a.GetComponentInChildren <EnemyItem>(true);
                aa.UpdateItem(enemyProxy.GetEnemy(enemy.EnemyId));
                a.transform.localScale = mediator.GetEnemySize();
                a.transform.position   = new Vector3(enemy.EnemyPosX * 3, 1.5f, enemy.EnemyPosY * 3);
                a.SetActive(true);
                aa.Destroyed += () => SendNotification(MyFacade.ENEMY_DESTROYED, aa);
                mediator.AddItems(aa);
            }

            mediator.Show();
        }
Example #13
0
 private void Pause()
 {
     Time.timeScale   = 0;
     Cursor.lockState = CursorLockMode.None;
     GameMediator.GetPlayer().LockControls(true);
 }
Example #14
0
 // Update is called once per frame
 void Update()
 {
     m_IndexWave.text       = (GameMediator.GetWaveManager().GetAllEnemiesToPop() - GameMediator.EnemiesKilled()).ToString();
     m_HealthBar.fillAmount = GameMediator.GetPlayer().m_CurrentLife / GameMediator.GetPlayer().m_MaxLife;
     m_NumberAmmo.text      = GameMediator.GetPlayer().m_AmmoCount.ToString();
 }
Example #15
0
    public override void Execute(INotification notification)
    {
        GameProxy    _proxy    = (GameProxy)this.Facade.RetrieveProxy(GameProxy.NAME);
        GameMediator _mediator = (GameMediator)this.Facade.RetrieveMediator(GameMediator.NAME);

        switch (notification.Name)
        {
        case GameNotify.OpenPlayerDialog:
        {
            Player entity = (Player)notification.Body;
            Debug.Log(entity);
            break;
        }

        case GameNotify.OpenWait:
        {
            _mediator.ShowWaitUI(true);
            break;
        }

        case GameNotify.CloseWait:
        {
            _mediator.ShowWaitUI(false);
            break;
        }

        case GameNotify.OpenTalk:
        {
            TalkData[] entity = (TalkData[])notification.Body;
            _proxy.SetTalkDatas(entity);
            _mediator.ShowTalkUI(true);
            _mediator.InitTalkUI(_proxy.GetTalkData());
            break;
        }

        case GameNotify.TalkClick:
        {
            bool isend = _proxy.IsTalkEnd();
            if (isend)
            {
                _mediator.ShowTalkUI(false);
                if (_proxy.IsTalkChangeArea())         //场景切换
                {
                    TalkData talkData = _proxy.GetTalkData(1);
                    NpcHandler.Inst.ChangeArea(talkData.target);
                }
            }
            else
            {
                _mediator.InitTalkUI(_proxy.GetTalkData());
            }
            break;
        }

        case GameNotify.LoadChageArea:
        {
            _mediator.LoadChageArea();
            break;
        }
        }
    }
Example #16
0
 private void Awake()
 {
     GameMediator.RegisterWindow(this);
     m_navLink         = GetComponent <OffMeshLink>();
     m_navLink.enabled = true;
 }
Example #17
0
 public override bool Effect()
 {
     return(GameMediator.GetPlayer().Heal(m_HealValue));
 }
Example #18
0
 public override bool Effect()
 {
     return(GameMediator.GetPlayer().TakeAmmos(m_AmmoCount));
 }
Example #19
0
 private void Start()
 {
     GameMediator.RegisterWaveManager(this);
 }
Example #20
0
 public void Resume()
 {
     Time.timeScale   = 1;
     Cursor.lockState = CursorLockMode.Locked;
     GameMediator.GetPlayer().LockControls(false);
 }
Example #21
0
 private void InitMediator()
 {
     _mediator = new GameMediator(_container);
 }