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; }
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); }
public void RemoveTriggerCallback(TriggerBase.OnTriggerEvent trigger) { BattleTrigger battleTrigger = U3DGameObject.GetComponentInChildren(typeof(BattleTrigger)) as BattleTrigger; if (battleTrigger == null) { return; } battleTrigger.TriggerEnterEvents -= trigger; }
public void AddTask(string taskID) { if (tasks.Contains(taskID)) { return; } tasks.Add(taskID); //如果是杀敌任务 BattleTrigger thisTrigger = spawner.SpawnEnemyByTask(taskID, delegate { FinishTask(taskID); }); }
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); }
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; }
void OnEnable() { trigger = (BattleTrigger)target; }
public void RemoveBattleTrigger(BattleTrigger trigger) { _mBattleTriggerList.Remove(trigger); }
public void AddBattleTrigger(BattleTrigger trigger) { _mBattleTriggerList.Add(trigger); }
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; } }