Example #1
0
    // Use this for initialization
    void Start()
    {
        m_Runner = new FSMRunner(gameObject);

        m_Runner.RegisterState <GameMaster_State_RunSingleTurn>();
        m_Runner.RegisterState <GameMaster_State_CheckGoal>();
        m_Runner.RegisterState <GameMaster_State_GameOver>();
        m_Runner.RegisterState <GameMaster_State_Victory>();
        m_Runner.RegisterState <GameMaster_State_Terminate>();
        m_Runner.RegisterState <GameMaster_State_DummyLoop>();

        GameMaster_State_Init stateInit = m_Runner.RegisterState <GameMaster_State_Init>();

        stateInit.m_FadeWidget = m_InitFadeWidget;
        stateInit.m_InitColor  = m_InitColor;

        GameMaster_State_PlayIntro statePlayIntro = m_Runner.RegisterState <GameMaster_State_PlayIntro>();

        statePlayIntro.m_IntroCutscene = m_IntroCutscene;

        m_Runner.StartState((int)GameMasterState.Init);

        m_Pawns          = new List <GameObject>();
        m_SceneParameter = GameSceneManager.GetInstance().GetParameter <CombatSceneParameter>();
        m_Settings       = GetComponent <Combat_Settings>();

        for (int prefabId = 0; prefabId < m_SceneParameter.m_EnemiesPawns.Count; prefabId++)
        {
            Transform prefab = m_SceneParameter.m_EnemiesPawns[prefabId];

            Vector3    position    = m_Settings.ComputePawnEnemyGlobalPosition(prefabId);
            Quaternion orientation = m_Settings.ComputePawnEnemyGlobalOrientation(prefabId);
            Transform  pawn        = (Transform)Instantiate(prefab, position, orientation);
            pawn.parent = gameObject.transform.root;
            m_Pawns.Add(pawn.gameObject);

            StickToGround.Apply(pawn.gameObject);
        }

        for (int prefabId = 0; prefabId < m_SceneParameter.m_PlayerPawns.Count; prefabId++)
        {
            Transform prefab = m_SceneParameter.m_PlayerPawns[prefabId];

            Vector3    position    = m_Settings.ComputePawnPlayerGlobalPosition(prefabId);
            Quaternion orientation = m_Settings.ComputePawnPlayerGlobalOrientation(prefabId);
            Transform  pawn        = (Transform)Instantiate(prefab, position, orientation);
            pawn.parent = gameObject.transform.root;
            m_Pawns.Add(pawn.gameObject);

            StickToGround.Apply(pawn.gameObject);
        }

        m_UIEffects.HideDamageEffect();
        m_UIEffects.HideGameOverEffect();
        m_UIEffects.HideVictoryEffect();
    }
Example #2
0
            public override void OnEnter()
            {
                CombatSceneParameter param = new CombatSceneParameter();

                param.m_EnemiesPawns.AddRange(m_Behavior.m_EnemyCombatSettings.m_PawnsPrefab);

                Transform prefabPawnPlayer   = Resources.Load <Transform>("Prefabs/Pawns/Pawn_Player");
                Transform prefabPawnSidekick = Resources.Load <Transform>("Prefabs/Pawns/Pawn_Sidekick");

                param.m_PlayerPawns.Add(prefabPawnPlayer);
                param.m_PlayerPawns.Add(prefabPawnSidekick);

                GameSceneManager.GetInstance().LoadCombatScene("Level_01_Combat_01", param);

                m_Runner.SetImmediateCurrentState((int)LevelMasterState.Nothing);
            }