public void UpdateData(CopyMonsterData.MonsterData data)
    {
        // nameText.Text = "";
        // avatar.PlayAnim("");

        property = gameObject.GetComponent <MonsterProperty>() as MonsterProperty;
        if (null == property)
        {
            property = gameObject.AddComponent <MonsterProperty>() as MonsterProperty;
        }

        property.FleetID    = data.FleetID;
        property.Name       = data.MonsterName;
        property.DialogText = data.MonsterDialog;
        property.ModelName  = data.ModelName;

        nameText.Text = property.Name;
        avatar.PlayAnim(property.ModelName);

        BattleTrigger btTrigger = gameObject.GetComponent <BattleTrigger>() as BattleTrigger;

        if (null == btTrigger)
        {
            btTrigger = gameObject.AddComponent <BattleTrigger>() as BattleTrigger;
        }

        btTrigger.BoxSize = new Vector3(avatar.width, avatar.height, 1.0f);

        btTrigger.TriggerEnterEvents += GameStatusManager.Instance.MCopyStatus.OnRequestBattle;
    }
Exemple #2
0
    private void SpawnBattle(int index)
    {
        float x = spawnArea.transform.position.x + Random.Range(-spawnWidth + triggerWidth, spawnWidth - triggerWidth);
        float y = spawnArea.transform.position.y + Random.Range(-spawnHeight + triggerHeight, spawnHeight - triggerHeight);

        Transform trigger = Instantiate(triggerPrefab, transform);

        trigger.name       = "RandomBattle " + index;
        trigger.position   = new Vector3(x, y, 0);
        trigger.localScale = triggerPrefab.localScale;

        UUID uuid = trigger.GetComponent <UUID>();

        uuid.uuid = "-1";

        BattleTrigger bTrigger = trigger.GetComponent <BattleTrigger>();

        bTrigger.battle       = battles[Random.Range(0, battles.Length)];
        bTrigger.alwaysActive = true;
        bTrigger.visible      = true;
        bTrigger.fadeInTime   = fadeInTime.value;
        bTrigger.spawning     = true;

        trigger.gameObject.SetActive(true);
        spawnedTriggers.Add(trigger);
    }
Exemple #3
0
    public void RemoveTriggerCallback(TriggerBase.OnTriggerEvent trigger)
    {
        BattleTrigger battleTrigger = U3DGameObject.GetComponentInChildren(typeof(BattleTrigger)) as BattleTrigger;

        if (battleTrigger == null)
        {
            return;
        }

        battleTrigger.TriggerEnterEvents -= trigger;
    }
Exemple #4
0
    public void AddTask(string taskID)
    {
        if (tasks.Contains(taskID))
        {
            return;
        }

        tasks.Add(taskID);
        //如果是杀敌任务
        BattleTrigger thisTrigger = spawner.SpawnEnemyByTask(taskID, delegate { FinishTask(taskID); });
    }
Exemple #5
0
    public BattleTrigger SpawnEnemyByTask(string taskID, UnityAction myAction)
    {
        //TO DO: 实例化一个触发器作为子对象 将触发器的位置设置成指定位置
        //       触发器自行生成自己对应的敌人队伍 通过设定好的数据
        BattleTrigger newTrigger = this.transform.GetChild(0).gameObject.GetComponent <BattleTrigger>();

        newTrigger.relativeTask = taskID;
        newTrigger.gameObject.SetActive(true);
        newTrigger.OnBattleWin.AddListener(myAction);

        return(newTrigger);
    }
Exemple #6
0
    private void InitTriggers()
    {
        Object     obj = Resources.Load("Common/DetectTrigger");
        GameObject go  = GameObject.Instantiate(obj) as GameObject;

        // Ensure the original offset
        Vector3    localPos = go.transform.position;
        Quaternion localRot = go.transform.rotation;

        go.name                    = "DetectTrigger";
        go.transform.parent        = U3DGameObject.transform;
        go.transform.localPosition = localPos;
        go.transform.localRotation = localRot;
        if (null != _mData)
        {
            go.transform.localScale *= _mData.DetectionRangeFactor;
        }

        obj = Resources.Load("Common/BattleTrigger");
        go  = GameObject.Instantiate(obj) as GameObject;
        // Ensure the original offset
        localPos                   = go.transform.position;
        localRot                   = go.transform.rotation;
        go.name                    = "BattleTrigger";
        go.transform.parent        = U3DGameObject.transform;
        go.transform.localPosition = localPos;
        go.transform.localRotation = localRot;
        BattleTrigger trigger = go.GetComponent <BattleTrigger>() as BattleTrigger;

        trigger.Radius = 100.0f;
        if (null != _mData)
        {
            go.transform.localScale *= _mData.BattleRangeFactor;
        }

        // VisibleTrigger
        _mVisibleTrigger = U3DGameObject.GetComponentInChildren <VisibleTrigger>() as VisibleTrigger;
    }
Exemple #7
0
 void OnEnable()
 {
     trigger = (BattleTrigger)target;
 }
 public void RemoveBattleTrigger(BattleTrigger trigger)
 {
     _mBattleTriggerList.Remove(trigger);
 }
 public void AddBattleTrigger(BattleTrigger trigger)
 {
     _mBattleTriggerList.Add(trigger);
 }
Exemple #10
0
    private void PlayerTurn()
    {
        //=== Beginning ===
        if (_setUpState)
        {
            _blockSpeed = _player.GetComponent <PlayerStats>().blockSpeed;
            turnNumber  = turnNumber + 1;
            _hudsManager.GetComponent <HudsManager>().CollapseBattleActionsHud();
            _hudsManager.GetComponent <HudsManager>().playerBattleActionHudActive = true;
            var playerBattleButtons = _hudsManager.GetComponent <HudsManager>().playerBattleActionHud.GetComponent <PlayerBattleButtons>();
            _setUpState       = false;
            _movingAction     = false;
            _attackActionDone = false;
            _moveActionDone   = false;
        }


        if (_hudsManager.GetComponent <HudsManager>().playerBattleActionHudActive == true &&
            _highlightedArea != null && _highlightedArea.Length > 0)
        {
            _tileManager.GetComponent <TileManager>().RemoveTilesCarpet99(_highlightedArea);
        }

        //=== B Button, back ===
        if (_dPadGlobal.BButton)
        {
            BButtonBack();
        }

        //                      ATTACK
        // ==================================================

        //===CHOSING ATTACK===
        if (attackButtonClicked && chosenAttack != null && !_attackActionDone) //attack false, move true
        {
            attackButtonClicked = false;

            //todo highlight using chosenAttack.range
            var range = _tileManager.GetComponent <TileManager>().Reposition(chosenAttack.range,
                                                                             new Vector3Int(Convert.ToInt32(_player.transform.position.x),
                                                                                            Convert.ToInt32(_player.transform.position.y),
                                                                                            Convert.ToInt32(_player.transform.position.z)));


            range            = RemoveTilesOutsideOfArea(range, battleArea);
            _highlightedArea = range;
            _tileManager.GetComponent <TileManager>().HighlightTiles(range);
            var enemiesInRange = new BattleTrigger().GetObjectsInTiles(new string[1] {
                "Enemy"
            }, range);
            //delete range
            if (enemiesInRange.Length > 0)
            {
                _chooseObjectWithBools.StartChoose(selectorPrefab, enemiesInRange);
            }
            else
            {
                //there's nobody in range
            }
            _hudsManager.GetComponent <HudsManager>().playerBattleActionHudActive = false;
        }

        //===ATTACK CHOSEN===
        if (_chooseObjectWithBools.result != null && !_chooseObjectWithBools.choosing)
        {
            currentEnemy = _chooseObjectWithBools.currentObject;

            //TODO attacking logic ****
            var damage        = chosenAttack.damage;
            var curEnStats    = currentEnemy.GetComponent <EnemyStats>();
            var playerActions = _player.GetComponent <PlayerBattleActions>();
            playerActions.Attack(damage, curEnStats, chosenAttack.attackIcon, currentEnemy.transform.position + new Vector3(0, 0.5f, 0));
            //****

            _chooseObjectWithBools.result = null; //reset the choice.
            _attackActionDone             = true;
            if (!_moveActionDone)
            {
                _hudsManager.GetComponent <HudsManager>().CollapseBattleActionsHud();

                _hudsManager.GetComponent <HudsManager>().ToggleEnableButton(_hudsManager.GetComponent <HudsManager>()
                                                                             .playerBattleActionHud.GetComponent <PlayerBattleButtons>()
                                                                             .ActionsButton, false);
                _hudsManager.GetComponent <HudsManager>().playerBattleActionHudActive = true;
                //turn button off or something?
            }
        }

        //                      MOVE
        // ==================================================
        if (_playerBattleGlobal.MoveButton && !_moveActionDone)
        {
            _playerBattleGlobal.MoveButton = false;
            _hudsManager.GetComponent <HudsManager>().playerBattleActionHudActive = false;
            _player.GetComponent <PlayerMove>().canMove = true;
            _moved        = _player.GetComponent <Move>().moved;
            _movingAction = true;
        }
        if (_movingAction)
        {
            MovingAction();
        }
        if (_moveActionDone && _movingAction)
        {
            _player.GetComponent <PlayerMove>().canMove = false;
            _movingAction = false;
            if (!_attackActionDone)
            {
                _hudsManager.GetComponent <HudsManager>().ToggleEnableButton(_hudsManager.GetComponent <HudsManager>()
                                                                             .playerBattleActionHud.GetComponent <PlayerBattleButtons>()
                                                                             .moveButton, false);
                _hudsManager.GetComponent <HudsManager>().playerBattleActionHudActive = true;
                //turn button off or something?
            }
        }

        //                  BATTLE OVER
        // ==================================================
        if (ActorsHPZero(playersInvolved) || enemiesInvolved.Length == 0)
        {
            _isLose        = true;
            _takeDownState = true;
        }
        if (ActorsHPZero(enemiesInvolved) || enemiesInvolved.Length == 0)
        {
            _isWon          = true;
            _moveActionDone = true;
        }

        //                  END OF TURN
        // ==================================================
        if (_attackActionDone && _moveActionDone)
        {
            _takeDownState = true;
        }

        if (_takeDownState)
        {
            chosenAttack = null;


            if (_isWon)
            {
                state = BattleState.WON;
            }
            else if (_isLose)
            {
                state = BattleState.LOST;
            }
            else
            {
                state = BattleState.ENEMYTURN;
            }
            _hudsManager.GetComponent <HudsManager>().ToggleEnableButton(_hudsManager.GetComponent <HudsManager>()
                                                                         .playerBattleActionHud.GetComponent <PlayerBattleButtons>()
                                                                         .ActionsButton, true);
            _hudsManager.GetComponent <HudsManager>().ToggleEnableButton(_hudsManager.GetComponent <HudsManager>()
                                                                         .playerBattleActionHud.GetComponent <PlayerBattleButtons>()
                                                                         .moveButton, true);
            _moveActionDone   = false;
            _attackActionDone = false;
            _takeDownState    = false;
            _setUpState       = true;
        }
    }