// Update is called once per frame protected override void Update() { if (playerController != null) { HunterController hc = (HunterController)playerController; canSeeTarget = false; targetIsPlayer = false; finalDirection = GetDirectionToTargetForMovement(); if (canSeeTarget && targetIsPlayer && playerController.primaryCooldown.done) { playerController.AIUsePrimary(); } // Use an else here so the AI doesn't end up using 2 powers in one turn else if (playerController.secondaryCooldown.done) { RaycastHit2D hitTarget = Physics2D.Raycast(playerController.GetPosition(), finalDirection, hc.GetDashDistance(), wallLayerMask); // Dash if there is no wall that the AI would crash into if (hitTarget.collider == null) { // Don't dash if you would overshoot(light) or crash into the target(player) if (!canSeeTarget || (canSeeTarget && distanceToTargetSquared > Mathf.Pow(hc.GetDashDistance(), 2))) { playerController.AIUseSecondary(); } } } if (finalDirection.sqrMagnitude > 0.01f) { playerController.AIMove(finalDirection); } } }
void Awake() { hc = GetComponent<HunterController>(); if(!photonView.isMine) { GetComponent<CharacterMotor>().enabled = false; } }
public WeaponFakeOne(HunterController _hc) { this.hunterController = _hc; this.bulletsInARow = 1; this.timeIntervalBetweenBullets = 0f; }
public WeaponFakeTwo(HunterController _hc) { this.hunterController = _hc; this.bulletsInARow = 200; this.timeIntervalBetweenBullets = 0.2f; }
public void Initiate() { TheHunter = Instantiate(HunterPrefab, new Vector3(0f, 3f, 0f), Quaternion.identity); TheHunter.Speed = HunterSpeed; TheGridManager.GenerateGrid(false); hunterVisionGrids = new List <Vector2Int>(); monsterObjs = new List <Monster>(); for (int i = 0; i < InitialMonster; i++) { SpawnMonster(); } if (HumanControlEnabled) { GameObject hunterCtlObj = new GameObject("HunterController"); hunterCtlObj.transform.parent = transform; hunterController = hunterCtlObj.AddComponent <HunterController>(); hunterController.ProjectileDistance = HunterProjectileDistance; hunterController.ProjectileSpeed = HunterProjectileSpeed; hunterController.IsEnabled = HumanControlEnabled; hunterController.TheHunter = TheHunter; } if (SdkAiEnabled) { hunterSDK = new HunterSDK <State, StepResponse>(this, SdkHost); hunterSDK.Initiate(); InvokeRepeating("Step", 2.0f, SdkStepInterval); } initiated = true; }
private void Assign(StartGameEvent e) { // Handle event here for (int i = 0; i < _players.Length; i++) { NPCController npcController = _players[i].GetComponent <NPCController>(); GhostController ghostController = _players[i].GetComponent <GhostController>(); HunterController hunterController = _players[i].GetComponent <HunterController>(); if (e.gameMode == GameMode.Practice) { hunterController.AlwaysRevealed = true; ghostController.AlwaysRevealed = true; } npcController.enabled = true; hunterController.enabled = false; ghostController.enabled = false; int minimumFurnitureCount = Mathf.Max(0, RoomManager.g.RoomCount - 1); int maximumFurnitureCount = RoomManager.g.RoomCount; npcController.InitFurniturePattern(RoomManager.g.RandomFurnitureList(Random.Range(minimumFurnitureCount, maximumFurnitureCount))); } int hunterIndex = Random.Range(0, _players.Length); int ghostIndex = Random.Range(0, _players.Length); if (ghostIndex == hunterIndex) { ghostIndex = (hunterIndex + 1) % _players.Length; } _players[hunterIndex].GetComponent <HunterController>().enabled = true; _players[ghostIndex].GetComponent <GhostController>().enabled = true; }
private void GhostSound(SmellEvent e) { // Handle event here if (e.IsStart) { _hunter = e.hunter; if (_smellingIsBinary) { if (e.room == GhostTracker.g.CurrGhostRoom) { _audioSource.clip = _ghostPresentSoundClip; } else { _audioSource.clip = _noGhostSoundClip; } } _playing = true; } else { _playing = false; StopSmellSound(); } }
public WeaponFakeThree(HunterController _hc) { this.hunterController = _hc; this.bulletsInARow = 3; this.timeIntervalBetweenBullets = 0.1f; }
void Awake() { _rigidbody = GetComponent <Rigidbody> (); _ghostController = GetComponent <GhostController> (); _hunterController = GetComponent <HunterController> (); _currRoomFinder = GetComponent <CurrRoomFinder> (); _transform = transform; }
void OnTriggerEnter(Collider c) { if(c.tag == "Player") { hc = c.gameObject.GetComponent<HunterController>(); if(hc.photonView.isMine) { hc.StartJump(jumpHeight); StartCoroutine(hc.AutoStopJump()); } } }
public override void Update(HunterController hunter) { m_time += Time.deltaTime; // クールダウン終了 if (m_time >= hunter.CoolTime) { hunter.ChangeState(new HunterChaseState()); } }
public override void OnTriggerStay(Collider other, HunterController hunter) { GameObject hitObj = other.gameObject; // 追いかけ状態だったら捕獲 if (hitObj.name == "Player") { hunter.ChangeState(new HunterCaptureState()); } }
public void StartSmellInRoomWithHunter(Room room, HunterController character) { if (CanSmell && !IsSmelling) { _smellChargeTimer.Stop(); _smellChargeTimer.Reset(); _smellProgressTimer.Start(); Events.g.Raise(new SmellEvent(starting: true, room: room, hunter: character)); } }
public override void Update(HunterController hunter) { m_time += Time.deltaTime; // 指定時間毎にルート更新 if (m_time >= hunter.RouteChangeSpan) { m_time = 0.0f; hunter.NavMeshAgent.SetDestination(hunter.Player.transform.position); } }
private void OnLevelWasLoaded(int level) { // Get the duck controller script reference if (duck == null) { duck = GameObject.FindGameObjectWithTag("Duck").GetComponent <DuckController>(); } // Get the duck controller script reference if (hunter == null) { hunter = GameObject.FindGameObjectWithTag("Hunter").GetComponent <HunterController>(); } }
// Use this for initialization void Start() { // Get the duck controller script reference if (duck == null) { duck = GameObject.FindGameObjectWithTag("Duck").GetComponent <DuckController>(); } // Get the duck controller script reference if (hunter == null) { hunter = GameObject.FindGameObjectWithTag("Hunter").GetComponent <HunterController>(); } }
public override void Enter(HunterController hunter) { // コンポーネントの取得 m_playerMove = hunter.Player.GetComponent <Movement>(); m_virusAmount = hunter.Player.GetComponent <VirusAmount>(); // 追跡を止める hunter.NavMeshAgent.SetDestination(hunter.transform.position); Vector3 playerPos = m_playerMove.transform.position; Vector3 hunterPos = hunter.transform.position; Vector3 relativePos = playerPos - hunterPos; relativePos.y = 0; //上下方向の回転はしないように制御 hunter.transform.rotation = Quaternion.LookRotation(relativePos); }
public override void Update(HunterController hunter) { m_time += Time.deltaTime; // プレイヤーを拘束 m_playerMove.LockMove = true; // ウィルスの自動回復を止める m_virusAmount.Stop = true; // 1フレーム分の減少 m_virusAmount.DecreaseMaxVirusAmount(hunter.DecreaseMaxAmount * Time.deltaTime); // ウィルスを減少しきったら解放 if (m_time >= hunter.CaptureTime) { m_playerMove.LockMove = false; m_virusAmount.Stop = false; hunter.ChangeState(new HunterCooldownState()); } }
void Start() { cameraBounds = Camera.main.OrthographicBounds(); startPosition = new Vector3(cameraBounds.max.x, 0, 0); hunter = GameObject.Find("Hunter"); hunterCt = hunter.GetComponent <HunterController>(); _gameFinished = false; // Obstacles weights obstaclesWeights.Add(new KeyValuePair <ObstacleType, int>(ObstacleType.Rocks, 30)); obstaclesWeights.Add(new KeyValuePair <ObstacleType, int>(ObstacleType.Crate, 30)); obstaclesWeights.Add(new KeyValuePair <ObstacleType, int>(ObstacleType.Gun, 30)); obstaclesWeights.Add(new KeyValuePair <ObstacleType, int>(ObstacleType.AnimalCage, 10)); //InvokeRepeating("NewObstacle", 20.0f, 2f); }
//singleton logic void OnEnable() { instance = this; }
public void setup() { hunterCtrl = GameObject.FindGameObjectWithTag("Hunter").GetComponent <HunterController>(); playerCtrl = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerController>(); }
//private DepthOfField _depthOfFieldEffect; public void SetTargets(Transform _target, Transform _hunter) { this.hunterTargetTransform = _target; this.hunterTransform = _hunter; cShakeTimes = 0; cShake = 0.0f; cShakeSpeed = shakeSpeed; //_depthOfFieldEffect = gameObject.GetComponent("DepthOfField") as DepthOfField; if(hunterTargetTransform == null || hunterTransform == null) { Destroy(this); return; } hunterTargetTransform.parent = null; camTransform = transform; Vector3 angles = camTransform.eulerAngles; x = angles.y; y = angles.x; hunterController = hunterTransform.GetComponent<HunterController>();; targetDistance = normalDistance; cPos = hunterTransform.position + new Vector3(0, normalHeight, 0); }
private float m_time = 0.0f; // 時間 public override void Enter(HunterController hunter) { }
// 初期化処理 public abstract void Enter(HunterController hunter);
// 更新処理 public abstract void Update(HunterController hunter);
// ヒット判定 public virtual void OnTriggerStay(Collider other, HunterController hunter) { }
private float m_time = 0.0f; // 時間 public override void Enter(HunterController hunter) { // プレイヤーを追跡 hunter.NavMeshAgent.SetDestination(hunter.Player.transform.position); }
void OnDisable() { instance = null; }
public SmellEvent(bool starting, Room room = null, HunterController hunter = null) { this.starting = starting; this.hunter = hunter; this.room = room; }