예제 #1
0
    //지휘관 로딩
    #region LOAD_COMMANDER
    private void LoadCommander(int number)
    {
        var selectedData = (from info in DataManager.GetInstance().dicCommanderinfo
                            where info.Value.isSelected == true
                            select info.Value).FirstOrDefault();
        var commander_id = selectedData.commander_id;
        var data         = DataManager.GetInstance().dicCommanderData[commander_id];

        UnityEngine.Object prefab = (from obj in App.instance.resource
                                     where obj.name == data.prefab_name
                                     select obj).FirstOrDefault();
        GameObject go = (GameObject)Instantiate(prefab);

        go.transform.position = new Vector3(DataManager.GetInstance().dicCommanderPositionData[number].x, DataManager.GetInstance().dicCommanderPositionData[number].y, DataManager.GetInstance().dicCommanderPositionData[number].z);

        this.commander = go.AddComponent <TestCommander>();

        commander.OnTargetFound = () =>
        {
            commander.ChangeBehavior(TestCommander.eCommanderState.ATTACK);
        };
        commander.OnAttackComplete = () =>
        {
            //Debug.Log("OnAttackComplete");

            commander.ChangeBehavior(TestCommander.eCommanderState.IDLE);
        };
        commander.OnIdleComplete = () =>
        {
            commander.ChangeBehavior(TestCommander.eCommanderState.SEARCH);
        };

        commander.Init(data, listMonsters); //Init

        if (commander.effectEvents != null)
        {
            commander.effectEvents.rangeMonstersAction = (listMonsters) =>
            {
                for (int i = 0; i < listMonsters.Count; i++)
                {
                    int capt = i;
                    listMonsters[capt].GetComponent <TestMonster>().OnDamagedMonster(commander.calculatedDamage);
                }
            };
            commander.effectEvents.dotDmgAction = (TargetMonster) =>
            {
                for (int i = 0; i < TargetMonster.Count; i++)
                {
                    int capt = i;
                    TargetMonster[capt].GetComponent <TestMonster>().OnDotDamageMonster(commander.calculatedDamage, 5, 0.2f); //도트(데미지,카운트,시간)
                }
            };

            commander.effectEvents.aspdUpAction = (percentage) =>
            {
                //commander.SetAspdUpAura();
            };
        }
    }
예제 #2
0
    // Use this for initialization
    void Start()
    {
        /* Testing movement */
        Commander co = new TestCommander();

        team[0] = new Team(co);
        map.findTile(0, 0).setUnit(team[0].generateTestTeam(GetComponentInChildren <TestUnit>().gameObject));
        UI.setMap(map);
    }
        public void NoContextByDefault_Test()
        {
            // Arrange
            var commander = new TestCommander();

            // Act
            var hasContext = commander.HasContext();

            // Assert
            Assert.False(hasContext);
        }
        public void Commander_UseContext_Test()
        {
            // Arrange
            var commander = new TestCommander();

            // Act
            commander.UseContext();
            var hasContext = commander.HasContext();

            // Assert
            Assert.True(hasContext);
        }