Exemplo n.º 1
0
    //最好先Awake, 再Init. Awake中初始化数据, Init中再new对象之类的
    //不然部分new对象比较分散的,就不好给System初始化进行排序,有耦合。比如EventSubject
    public void Init()
    {
        m_AchievementSystem = new AchievementSystem();
        m_CampSystem        = new CampSystem();
        m_CharactorSystem   = new CharacterSystem();
        m_EnergySystem      = new EnergySystem();
        m_GameEventSystem   = new GameEventSystem();
        m_StageSystem       = new StageSystem();
        m_FileDataSystem    = new FileDataSystem();


        m_CampInfoUI      = new CampInfoUI();
        m_GamePauseUI     = new GamePauseUI();
        m_GameStateInfoUI = new GameStateInfoUI();
        m_SolderInfoUI    = new SoldierInfoUI();

        m_FileDataSystem.Init();
        m_AchievementSystem.Init();
        m_CampSystem.Init();
        m_CharactorSystem.Init();
        m_EnergySystem.Init();
        m_GameEventSystem.Init();
        m_StageSystem.Init();

        m_CampInfoUI.Init();
        m_GamePauseUI.Init();
        m_GameStateInfoUI.Init();
        m_SolderInfoUI.Init();
        LoadMemento();
    }
	// 初始P-BaseDefense遊戲相關設定
	public void Initinal()
	{
		// 場景狀態控制
		m_bGameOver = false;
		// 遊戲系統
		m_GameEventSystem = new GameEventSystem(this);	// 遊戲事件系統
		m_CampSystem = new CampSystem(this);			// 兵營系統
		m_StageSystem = new StageSystem(this);			// 關卡系統
		m_CharacterSystem = new CharacterSystem(this); 	// 角色管理系統
		m_ApSystem = new APSystem(this);				// 行動力系統
		m_AchievementSystem = new AchievementSystem(this); // 成就系統
		// 界面
		m_CampInfoUI = new CampInfoUI(this); 			// 兵營資訊
		m_SoldierInfoUI = new SoldierInfoUI(this); 		// Soldier資訊									
		m_GameStateInfoUI = new GameStateInfoUI(this); 	// 遊戲資料
		m_GamePauseUI = new GamePauseUI (this);			// 遊戲暫停

		// 注入到其它系統
		EnemyAI.SetStageSystem( m_StageSystem );

		// 載入存檔
		LoadData();

		// 註冊遊戲事件系統
		ResigerGameEvent();
	}
Exemplo n.º 3
0
    public void Init()
    {
        systems = new List <IGameSystem>();

        achievementSystem = new AchievementSystem();
        campSystem        = new CampSystem();
        CharacterSystem   = new CharacterSystem();
        EnergySystem      = new EnergySystem();
        EventSystem       = new GameEventSystem();
        StageSystem       = new StageSystem();

        CampInfoUI      = new CampInfoUI();
        gamePauseUI     = new GamePauseUI();
        GameStateInfoUI = new GameStateInfoUI();
        soldierInfoUI   = new SoldierInfoUI();

        systems.Add(achievementSystem);
        systems.Add(campSystem);
        systems.Add(CharacterSystem);
        systems.Add(EnergySystem);
        systems.Add(EventSystem);
        systems.Add(StageSystem);

        systems.Add(CampInfoUI);
        systems.Add(gamePauseUI);
        systems.Add(GameStateInfoUI);
        systems.Add(soldierInfoUI);

        systems.ForEach(s => s.Init());


        var memento = CareTaker.RetrieveMemento(); //取回备忘录

        achievementSystem.RestoreMemento(memento); //根据备忘录,恢复成就系统
    }
Exemplo n.º 4
0
    // 初始P-BaseDefense游戏相关设定
    public void Initinal()
    {
        // 场景状态控制
        m_bGameOver = false;
        // 游戏系统
        m_GameEventSystem   = new GameEventSystem(this);   // 游戏事件系统
        m_CampSystem        = new CampSystem(this);        // 兵营系统
        m_StageSystem       = new StageSystem(this);       // 关卡系统
        m_CharacterSystem   = new CharacterSystem(this);   // 角色管理系统
        m_ApSystem          = new APSystem(this);          // 行动力系统
        m_AchievementSystem = new AchievementSystem(this); // 成就系统
                                                           // 界面
        m_CampInfoUI      = new CampInfoUI(this);          // 兵营信息
        m_SoldierInfoUI   = new SoldierInfoUI(this);       // Soldier信息
        m_GameStateInfoUI = new GameStateInfoUI(this);     // 游戏资料
        m_GamePauseUI     = new GamePauseUI(this);         // 游戏暂停

        // 注入到其它系统
        EnemyAI.SetStageSystem(m_StageSystem);

        // 载入存档
        LoadData();

        // 注册游戏事件系统
        ResigerGameEvent();
    }
Exemplo n.º 5
0
    private SoldierInfoUI m_SoldierInfoUI;           //战士信息

    public void Init()
    {
        m_ArchievementSystem = new ArchievementSystem();
        m_CampSystem         = new CampSystem();
        m_CharacterSystem    = new CharacterSystem();
        m_EnergySystem       = new EnergySystem();
        m_GameEventSystem    = new GameEventSystem();
        m_StageSystem        = new StageSystem();

        m_CampInfoUI      = new CampInfoUI();
        m_GamePauseUI     = new GamePauseUI();
        m_GameStateInfoUI = new GameStateInfoUI();
        m_SoldierInfoUI   = new SoldierInfoUI();

        m_ArchievementSystem.Init();
        m_CampSystem.Init();
        m_CharacterSystem.Init();
        m_EnergySystem.Init();
        m_GameEventSystem.Init();
        m_StageSystem.Init();
        m_CampInfoUI.Init();
        m_GamePauseUI.Init();
        m_GameStateInfoUI.Init();
        m_SoldierInfoUI.Init();
    }
    // 初始P-BaseDefense遊戲相關設定
    public void Initinal()
    {
        // 場景狀態控制
        m_bGameOver = false;
        // 遊戲系統
        m_GameEventSystem   = new GameEventSystem(this);        // 遊戲事件系統
        m_CampSystem        = new CampSystem(this);             // 兵營系統
        m_StageSystem       = new StageSystem(this);            // 關卡系統
        m_CharacterSystem   = new CharacterSystem(this);        // 角色管理系統
        m_ApSystem          = new APSystem(this);               // 行動力系統
        m_AchievementSystem = new AchievementSystem(this);      // 成就系統
        // 界面
        m_CampInfoUI      = new CampInfoUI(this);               // 兵營資訊
        m_SoldierInfoUI   = new SoldierInfoUI(this);            // Soldier資訊
        m_GameStateInfoUI = new GameStateInfoUI(this);          // 遊戲資料
        m_GamePauseUI     = new GamePauseUI(this);              // 遊戲暫停

        // 注入到其它系統
        EnemyAI.SetStageSystem(m_StageSystem);

        // 載入存檔
        LoadData();

        // 註冊遊戲事件系統
        ResigerGameEvent();
    }
Exemplo n.º 7
0
    public void Init()
    {
        mArchievementSystem = new ArchievementSystem();
        mCampSystem         = new CampSystem();
        mCharacterSystem    = new CharacterSystem();
        mEnergySystem       = new EnergySystem();
        mGameEventSystem    = new GameEventSystem();
        mStageSystem        = new StageSystem();

        mCampInfoUI      = new CampInfoUI();
        mGamePauseUI     = new GamePauseUI();
        mGameStateInfoUI = new GameStateInfoUI();
        mSoldierInfoUI   = new SoldierInfoUI();

        mArchievementSystem.Init();
        mCampSystem.Init();
        mCharacterSystem.Init();
        mEnergySystem.Init();
        mGameEventSystem.Init();
        mStageSystem.Init();

        mCampInfoUI.Init();
        mGamePauseUI.Init();
        mGameStateInfoUI.Init();
        mSoldierInfoUI.Init();

        LoadMemento();
    }
Exemplo n.º 8
0
 public void OnUpdate()
 {
     ArchievementSystem.OnUpdate();
     CampSystem.OnUpdate();
     CharacterSystem.OnUpdate();
     EnergySystem.OnUpdate();
     GameEventSystem.OnUpdate();
     StageSystem.OnUpdate();
     UISystem.OnUpdate();
 }
Exemplo n.º 9
0
 public void Initinal()
 {
     isGameOver        = false;
     apSystem          = new APSystem(this);
     campSystem        = new CampSystem(this);
     stageSystem       = new StageSystem(this);
     gameEventSystem   = new GameEventSystem(this);
     characterSystem   = new CharacterSystem(this);
     achievementSystem = new AchievementSystem(this);
 }
Exemplo n.º 10
0
    static bool CheckTargetType(Character cha, Character target, SkillTargetType type)
    {
        switch (type)
        {
        case SkillTargetType.All:
            return(true);

        case SkillTargetType.Enemy:
        {
            if (CampSystem.IsEnemy(cha, target))
            {
                return(true);
            }
            break;
        }

        case SkillTargetType.Friend:
        {
            if (CampSystem.IsFriend(cha, target))
            {
                return(true);
            }
            break;
        }

        case SkillTargetType.FriendDead:
        {
            if (CampSystem.IsFriend(cha, target))
            {
                return(true);
            }
            break;
        }

        case SkillTargetType.Neutral:
        {
            if (!CampSystem.IsEnemy(cha, target) && !CampSystem.IsFriend(cha, target))
            {
                return(true);
            }
            break;
        }

        case SkillTargetType.Self:
        {
            if (cha == target)
            {
                return(true);
            }
            break;
        }
        }
        return(false);
    }
Exemplo n.º 11
0
    public void OnRelease()
    {
        this.CreateMemento();

        ArchievementSystem.OnRelease();
        CampSystem.OnRelease();
        CharacterSystem.OnRelease();
        EnergySystem.OnRelease();
        GameEventSystem.OnRelease();
        StageSystem.OnRelease();
        UISystem.OnRelease();
    }
Exemplo n.º 12
0
 /// <summary>
 /// 初始化
 /// </summary>
 public void Initinal()
 {
     //场景状态控制
     m_bGameOver = false;
     //游戏系统
     m_GameEventSystem   = new GameEventSystem(this);
     m_CampSystem        = new CampSystem(this);
     m_StageSystem       = new StageSystem(this);
     m_CharacterSystem   = new CharacterSystem(this);
     m_ApSystem          = new APSystem(this);
     m_AchievementSystem = new AchievementSystem(this);
     //...
 }
    void UnitTest_CampSystem()
    {
        theCampSystem = new CampSystem(null);
        theCampSystem.Initialize();

        //  執行訓練
        theCampSystem.UTTrainSoldier(ENUM_Soldier.Rookie);
        theCampSystem.UTTrainSoldier(ENUM_Soldier.Rookie);
        theCampSystem.UTTrainSoldier(ENUM_Soldier.Rookie);

        theCampSystem.UTTrainSoldier(ENUM_Soldier.Captain);
        theCampSystem.UTTrainSoldier(ENUM_Soldier.Captain);
        theCampSystem.UTTrainSoldier(ENUM_Soldier.Captain);
    }
Exemplo n.º 14
0
    public void Initial()
    {
        bGameOver = false;

        //游戏系统
        gameEventSystem   = new GameEventSystem(this);
        campSystem        = new CampSystem(this);
        stageSystem       = new StageSystem(this);
        characterSystem   = new CharacterSystem(this);
        apSystem          = new APSystem(this);
        achievementSystem = new AchievementSystem(this);

        //界面
        campInfoUI      = new CampInfoUI(this);
        soldierInfoUI   = new SoldierInfoUI(this);
        gameStateInfoUI = new GameStateInfoUI(this);
    }
Exemplo n.º 15
0
        // Init RTSGame.
        public void Initinal()
        {
            // Scene Control.
            m_bGameOver = false;
            // Game System.
            m_GameEventSystem   = new GameEventSystem(this);
            m_CampSystem        = new CampSystem(this);
            m_StageSystem       = new StageSystem(this);
            m_CharacterSystem   = new CharacterSystem(this);
            m_APSystem          = new APSystem(this);
            m_AchievementSystem = new AchievementSystem(this);

            // UI
            m_CampInfoUI      = new CampInfoUI(this);
            m_GamePauseUI     = new GamePauseUI(this);
            m_GameStateInfoUI = new GameStateInfoUI(this);
            m_SoldierInfoUI   = new SoldierInfoUI(this);
        }
Exemplo n.º 16
0
    /// <summary>
    /// 初始化
    /// </summary>
    public void Initinal()
    {
        //辅助系统
        m_TipsSystem    = new TipsSystem(this);
        m_SwitchSystem  = new SwitchSystem(this);
        m_arsenalSystem = new ArsenalSystem(this);
        //界面
        m_tipsPanel = new TipsPanel();



        m_TipsSystem.Initialize();
        m_arsenalSystem.Initialize();


        //第一次打开才进行加载以下界面
        if (m_player == null)
        {
            m_mainPanel           = new MainPanel(this);
            m_mainMenuPanel       = new MainMenuPanel(this);
            m_mainMenuRightPanel  = new MainMenuRightPanel(this);
            m_readAssetPanel      = new ReadAssetPanel(this);
            m_readAssetRightPanel = new ReadAssetRightPanel(this);
            m_ChooseRolePanel     = new ChooseRolePanel(this);
            m_gameMenuRightPanel  = new GameMenuRightPanel(this);

            //界面状态系统初始化
            m_SwitchSystem.Initialize();
            //注册界面状态
            AddUIState();

            //主界面初始化
            m_mainPanel.Begin();
        }
        else
        {
            //进入游戏后加载兵营系统 以及  UI
            m_campSystem = new CampSystem(this);
            m_statePanel = new GameStatePanel(this);
            //初始化
            m_campSystem.Initialize();
            m_statePanel.Begin();
        }
    }
Exemplo n.º 17
0
    private void FixedUpdate()
    {
        Player mainPlayer = GameController.mMainPlayer;

        if (mainPlayer == null)
        {
            return;
        }
        UpdateBarActive(UIHpBarType.Self, mainPlayer == Owner);
        UpdateBarActive(UIHpBarType.Friend, CampSystem.IsFriend(mainPlayer, Owner));
        UpdateBarActive(UIHpBarType.Enemy, CampSystem.IsEnemy(mainPlayer, Owner));

        int maxHP = Owner.GetAtb(AtbType.MaxHP);

        if (maxHP > 0)
        {
            float t = (float)Owner.HP / (float)maxHP;
            mCurHpBar.fillAmount = t;
        }
    }
Exemplo n.º 18
0
    public GameFacade OnInit()
    {
        UISystem           = new UISystem();
        ArchievementSystem = new ArchievementSystem();
        CampSystem         = new CampSystem();
        CharacterSystem    = new CharacterSystem();
        EnergySystem       = new EnergySystem();
        GameEventSystem    = new GameEventSystem();
        StageSystem        = new StageSystem();


        UISystem.OnInit();
        CampSystem.OnInit();
        CharacterSystem.OnInit();
        EnergySystem.OnInit();
        GameEventSystem.OnInit();
        StageSystem.OnInit();
        ArchievementSystem.OnInit();

        this.LoadMemento();

        return(this);
    }
Exemplo n.º 19
0
    public static SkillResult UseSkill(SkillHandle handle)
    {
        if (handle.caster == null || handle.caster.IsCannotFlag(CannotFlag.CannotSkill))
        {
            return(SkillResult.InvalidCaster);
        }
        Skill lastSkill = handle.caster.GetSkill();

        if (lastSkill != null)
        {
            SkillStage stage = lastSkill.mCurStage;
            if (stage != null)
            {
                if (SkillStage.IsStageTrait(SkillStageTrait.WaitBreakStage, stage.mStageInfo))
                {
                    if (stage.mStageEnd == null)
                    {
                        WaitBreakStage onStageEnd = new WaitBreakStage();
                        onStageEnd.nextSkillHandle = handle;
                        stage.SetBreak(SkillBreakType.OtherSkill, false, onStageEnd.OnStageEnd);
                    }

                    return(SkillResult.CannotBreak);
                }
                if (!SkillStage.IsStageTrait(SkillStageTrait.BreakSelf, stage.mStageInfo) &&
                    lastSkill.SkillID == handle.skillID)
                {
                    return(SkillResult.CannotBreak);
                }
                if (!SkillStage.IsStageTrait(SkillStageTrait.SkillBreak, stage.mStageInfo))
                {
                    return(SkillResult.CannotBreak);
                }
            }
        }

        excel_skill_list skillExcel = excel_skill_list.Find(handle.skillID);

        if (skillExcel == null)
        {
            return(SkillResult.ExcelNotExist);
        }
        Character target = handle.caster.mScene.FindCharacter(handle.skillTargetID);

        SkillTargetType targetType = (SkillTargetType)skillExcel.targetType;

        if (targetType != SkillTargetType.All)
        {
            if (target == null)
            {
                return(SkillResult.InvalidTarget);
            }
            if (targetType == SkillTargetType.Enemy && !CampSystem.IsEnemy(handle.caster, target))
            {
                return(SkillResult.InvalidTarget);
            }
            if (targetType == SkillTargetType.Friend && !CampSystem.IsFriend(handle.caster, target))
            {
                return(SkillResult.InvalidTarget);
            }
        }
        if (target == null && skillExcel.maxDistance > 0.0f)
        {
            return(SkillResult.InvalidTarget);
        }

        SkillContext context = new SkillContext();

        context.mSkillID      = handle.skillID;
        context.mOwner        = handle.caster;
        context.SkillTargetID = handle.skillTargetID;
        if (!handle.autoTargetPos)
        {
            context.TargetPos = handle.targetPos;
        }
        else
        {
            context.TargetPos = target == null ? Vector3.zero : target.Position;
        }
        Skill skill = new Skill(handle.skillID, context);

        handle.caster.SetSkill(skill);
        skill.mSkillEnd = handle.skillEndMethod;

        ReqSkill notifyMsg = new ReqSkill();

        notifyMsg.skillID       = handle.skillID;
        notifyMsg.casterID      = handle.caster.gid;
        notifyMsg.targetID      = handle.skillTargetID;
        notifyMsg.autoTargetPos = handle.autoTargetPos;
        notifyMsg.targetPos     = Vector3Packat.FromVector3(handle.targetPos);
        notifyMsg.position      = Vector3Packat.FromVector3(handle.caster.Position);
        notifyMsg.direction     = Vector3Packat.FromVector3(handle.caster.Direction);

        for (int i = 0; i < handle.caster.mScene.GetPlayerCount(); ++i)
        {
            Player player = handle.caster.mScene.GetPlayerByIndex(i);
            NetWork.NotifyMessage(player.UserID, STC.STC_SkillNotify, notifyMsg);
        }

        return(SkillResult.Success);
    }
 public EnemyKilledObserverCaptiveCamp(CampSystem theCampSystem)
 {
     m_CampSystem = theCampSystem;
 }
	public EnemyKilledObserverCaptiveCamp(CampSystem  theCampSystem)
	{
		m_CampSystem = theCampSystem;
	}
	void UnitTest_CampSystem()
	{
		theCampSystem =new CampSystem(null);
		theCampSystem.Initialize();

		//  執行訓練
		theCampSystem.UTTrainSoldier( ENUM_Soldier.Rookie ); 
		theCampSystem.UTTrainSoldier( ENUM_Soldier.Rookie ); 
		theCampSystem.UTTrainSoldier( ENUM_Soldier.Rookie ); 

		theCampSystem.UTTrainSoldier( ENUM_Soldier.Captain ); 
		theCampSystem.UTTrainSoldier( ENUM_Soldier.Captain ); 
		theCampSystem.UTTrainSoldier( ENUM_Soldier.Captain ); 
	}