void Awake() { _synchronizer = GetComponent <SkillSynchronizer>(); _hitRistrictor = new HitRistrictor(_hitInfo); _renderer = GetComponent <SpriteRenderer>(); _renderer.enabled = false; _animator = GetComponent <Animator>(); _animator.enabled = false; _collider = GetComponent <Collider2D>(); _collider.enabled = false; _instantiatedTime = Time.time; this.UpdateAsObservable() .Where(_ => Time.time - _instantiatedTime > _collisionOccurenceTime) .Take(1) .Subscribe(_ => { _renderer.enabled = true; _animator.enabled = true; _collider.enabled = true; }); this.UpdateAsObservable() .Where(_ => photonView.isMine) .Where(_ => Time.time - _instantiatedTime > _secondInstantiateTime) .Take(1) .Subscribe(_ => { var secondSkill = PhotonNetwork.Instantiate(_secondPath, transform.position, transform.rotation, 0).GetComponent <Skill>(); secondSkill.SyncInit(_skillUserViewID); SkillReference.Instance.Register(secondSkill.viewID); }); }
void Awake() { _synchronizer = GetComponent <SkillSynchronizer>(); _hitRistrictor = new HitRistrictor(_hitInfo); Observable.Timer(TimeSpan.FromSeconds(_existTime)) .Where(_ => this != null) .Subscribe(_ => { gameObject.SetActive(false); Observable.Timer(TimeSpan.FromSeconds(5.0f)) .Where(none => this != null) .Subscribe(none => { Destroy(gameObject); }); }); this.UpdateAsObservable() .Where(_ => _skillUserObj != null) .Where(_ => photonView.isMine) .Take(1) .Subscribe(_ => { var skillUser = _skillUserObj.GetComponent <Player>(); Vector2 direction = (skillUser.Renderers[0].flipX) ? Vector2.left : Vector2.right; _synchronizer.SyncForce(skillUser.PhotonView.viewID, _force, direction, false); }); Observable.Timer(TimeSpan.FromSeconds(_firstDamageTime)) .Subscribe(_ => { _attackInfo = new AttackInfo(_continuousDamagePercent, _attackInfo.MaxDeviation, _attackInfo.CriticalPercent); }); }
void Awake() { _synchronizer = GetComponent <SkillSynchronizer>(); _hitRistrictor = new HitRistrictor(_hitInfo); _collider = GetComponent <BoxCollider2D>(); _collider.enabled = false; _timestamp = Time.time; this.UpdateAsObservable() .Where(_ => _skillUserObj != null) .Take(1) .Where(_ => { var skillUser = _skillUserObj.GetComponent <Player>(); return(Client.Opponents.Contains(skillUser)); }) .Subscribe(_ => _renderer.color = new Color(255.0f / 255.0f, 0, 190.0f / 255.0f, 1)); this.UpdateAsObservable() .Where(_ => Time.time - _timestamp >= _collisionOccurenceTime) .Take(1) .Subscribe(_ => _collider.enabled = true); this.UpdateAsObservable() .Where(_ => _skillUserObj != null) .Take(1) .Subscribe(_ => _player = _skillUserObj.GetComponent <Player>()); this.UpdateAsObservable() .Where(_ => _player != null) .Where(_ => _player.Level.Cur.Value >= 11) .Take(1) .Subscribe(_ => _attackInfo = new AttackInfo(850, _attackInfo.MaxDeviation, _attackInfo.CriticalPercent)); }
void Awake() { _synchronizer = GetComponent <SkillSynchronizer>(); _hitRistrictor = new HitRistrictor(_hitInfo); _animator = GetComponent <Animator>(); _animator.SetBool("RedBreak", false); Shield = new Shield(_durability); this.UpdateAsObservable() .Where(_ => _skillUserObj != null) .Take(1) .Subscribe(_ => { _skillUser = _skillUserObj.GetComponent <IOnAttacked>(); _skillUser.DamageReactor.SetSlot(Shield); }); this.UpdateAsObservable() .Where(_ => _skillUserObj != null) .Subscribe(_ => { var player = _skillUserObj.GetComponent <Player>(); transform.position = player.transform.position + player.Weapon.AppearOffset[3]; }); }
void Awake() { _synchronizer = GetComponent <SkillSynchronizer>(); _hitRistrictor = new HitRistrictor(_hitInfo); MonoUtility.Instance.StoppableDelaySec(_existTime, "WarriorZFalse" + GetInstanceID().ToString(), () => { if (gameObject == null) { return; } gameObject.SetActive(false); // NOTE: See SMB-DestroySkillSelf MonoUtility.Instance.StoppableDelaySec(5.0f, "WarriorZDestroy" + GetInstanceID().ToString(), () => { if (gameObject == null) { return; } Destroy(gameObject); }); }); this.UpdateAsObservable() .Where(_ => _skillUserObj != null) .Take(1) .Subscribe(_ => transform.parent = _skillUserObj.transform); }
void Awake() { _synchronizer = GetComponent <SkillSynchronizer>(); _hitRistrictor = new HitRistrictor(_hitInfo); _healRistrictor = new HitRistrictor(_healInfo); _animator = GetComponent <Animator>(); _animator.SetBool("SpaceBreak", false); this.UpdateAsObservable() .Where(_ => _skillUserObj != null) .Take(1) .Subscribe(_ => { transform.parent = _skillUserObj.transform; _player = _skillUserObj.GetComponent <Player>(); }); // NOTE: For skill user heal himself. // Because of WarriorSpace is a child of skill user, // WarriorSpace doesn't heal skill user in OnTriggerStay2D. this.UpdateAsObservable() .Where(_ => _player != null) .Where(_ => photonView.isMine) .Where(_ => !_healRistrictor.ShouldRistrict(_player.gameObject)) .Subscribe(_ => _synchronizer.SyncHeal(_player.PhotonView.viewID, GetHealQuantity())); }
void Awake() { _synchronizer = GetComponent <SkillSynchronizer>(); _hitRistrictor = new HitRistrictor(_hitInfo); this.UpdateAsObservable() .Where(_ => _skillUserObj != null) .Take(1) .Where(_ => { var skillUser = _skillUserObj.GetComponent <Player>(); return(Client.Opponents.Contains(skillUser)); }) .Subscribe(_ => _renderer.color = new Color(0, 1, 1, 1)); Observable.Timer(TimeSpan.FromSeconds(_existTime)) .Where(_ => this != null) .Subscribe(_ => { gameObject.SetActive(false); Observable.Timer(TimeSpan.FromSeconds(5.0f)) .Where(none => this != null) .Subscribe(none => { Destroy(gameObject); }); }); }
void Awake() { _synchronizer = GetComponent <SkillSynchronizer>(); _hitRistrictor = new HitRistrictor(_hitInfo); MonoUtility.Instance.StoppableDelaySec(_existTime, "PandaZFalse" + GetInstanceID().ToString(), () => { if (gameObject == null) { return; } gameObject.SetActive(false); // NOTE: See SMB-DestroySkillSelf MonoUtility.Instance.StoppableDelaySec(5.0f, "PandaZDestroy" + GetInstanceID().ToString(), () => { if (gameObject == null) { return; } Destroy(gameObject); }); }); this.UpdateAsObservable() .Where(_ => _skillUserObj != null) .Take(1) .Subscribe(_ => { _player = _skillUserObj.GetComponent <Player>(); _player.Movement.SetMoveForce(_player.Status.Spd * _spdRatio); _player.Debuff.DestroyAll(); _player.Debuff.Disable(); MonoUtility.Instance.StoppableDelaySec(_existTime, "PandaDebuffEnable" + GetInstanceID().ToString(), () => { if (_player == null) { return; } _player.Movement.SetMoveForce(_player.Status.Spd); _player.Debuff.Enable(); }); }); this.UpdateAsObservable() .Where(_ => photonView.isMine) .Where(_ => _player != null) .Subscribe(_ => { UpdateMovement(); UpdateRotation(); }); this.UpdateAsObservable() .Where(_ => _skillUserObj != null) .Take(1) .Subscribe(_ => transform.parent = _skillUserObj.transform); }
void Awake() { _synchronizer = GetComponent <SkillSynchronizer>(); _hitRistrictor = new HitRistrictor(_hitInfo); Observable.Timer(TimeSpan.FromSeconds(_existTime)) .Where(_ => this != null) .Subscribe(_ => { gameObject.SetActive(false); Observable.Timer(TimeSpan.FromSeconds(5.0f)) .Where(none => this != null) .Subscribe(none => { Destroy(gameObject); }); }); this.UpdateAsObservable() .Where(_ => _skillUserObj != null) .Take(1) .Subscribe(_ => { _player = _skillUserObj.GetComponent <Player>(); _player.Movement.SetMoveForce(_player.Status.Spd * _spdRatio); _player.Debuff.DestroyAll(); _player.Debuff.Disable(); MonoUtility.Instance.StoppableDelaySec(_existTime, "PandaDebuffEnable" + GetInstanceID().ToString(), () => { if (_player == null) { return; } _player.Movement.SetMoveForce(_player.Status.Spd); _player.Debuff.Enable(); }); }); this.UpdateAsObservable() .Where(_ => photonView.isMine) .Where(_ => _player != null) .Subscribe(_ => { UpdateMovement(); UpdateRotation(); }); this.UpdateAsObservable() .Where(_ => _skillUserObj != null) .Subscribe(_ => { var player = _skillUserObj.GetComponent <Player>(); transform.position = player.transform.position + player.Weapon.AppearOffset[2]; }); }
void Awake() { _synchronizer = GetComponent <SkillSynchronizer>(); _hitRistrictor = new HitRistrictor(_hitInfo); _renderer = GetComponent <SpriteRenderer>(); this.UpdateAsObservable() .Where(_ => _skillUserObj != null) .Take(1) .Where(_ => { var skillUser = _skillUserObj.GetComponent <Player>(); return(Client.Opponents.Contains(skillUser)); }) .Subscribe(_ => _renderer.color = new Color(1, 0, 0, 1)); }
void Awake() { _synchronizer = GetComponent <SkillSynchronizer>(); _hitRistrictor = new HitRistrictor(_hitInfo); Observable.Timer(TimeSpan.FromSeconds(_existTime)) .Where(_ => this != null) .Subscribe(_ => { gameObject.SetActive(false); Observable.Timer(TimeSpan.FromSeconds(5.0f)) .Where(none => this != null) .Subscribe(none => { Destroy(gameObject); }); }); }
void Awake() { _synchronizer = GetComponent <SkillSynchronizer>(); _hitRistrictor = new HitRistrictor(_hitInfo); _renderer = GetComponent <SpriteRenderer>(); this.UpdateAsObservable() .Where(_ => _skillUserObj != null) .Take(1) .Where(_ => { var skillUser = _skillUserObj.GetComponent <Player>(); return(Client.Opponents.Contains(skillUser)); }) .Subscribe(_ => _renderer.color = new Color(1, 0, 0.5f, 1)); this.UpdateAsObservable() .Where(_ => _skillUserObj != null) .Take(1) .Subscribe(_ => { _player = _skillUserObj.GetComponent <Player>(); }); this.UpdateAsObservable() .Where(_ => _player != null) .Where(_ => photonView.isMine) .Take(1) .Subscribe(_ => { CameraManager.Instance.SetTrackTarget(gameObject); Observable.Timer(TimeSpan.FromSeconds(_existTime)) .Where(none => this != null) .Where(none => photonView.isMine) .Subscribe(none => { PhotonNetwork.Destroy(gameObject); }); }); this.UpdateAsObservable() .Where(_ => _player != null) .Where(_ => _player.Level.Cur.Value >= 11) .Take(1) .Subscribe(_ => _attackInfo = new AttackInfo(130, _attackInfo.MaxDeviation, _attackInfo.CriticalPercent)); }
void Awake() { _synchronizer = GetComponent <SkillSynchronizer>(); _hitRistrictor = new HitRistrictor(_hitInfo); _healRistrictor = new HitRistrictor(_healInfo); _animator = GetComponent <Animator>(); _animator.SetBool("SpaceBreak", false); this.UpdateAsObservable() .Where(_ => _skillUserObj != null) .Take(1) .Subscribe(_ => { _player = _skillUserObj.GetComponent <Player>(); }); this.UpdateAsObservable() .Where(_ => _player != null) .Subscribe(_ => { transform.position = _player.transform.position + _player.Weapon.AppearOffset[4]; }); }
void Awake() { _synchronizer = GetComponent <SkillSynchronizer>(); _hitRistrictor = new HitRistrictor(_hitInfo); MonoUtility.Instance.StoppableDelaySec(_existTime, "PandaSpaceFalse" + GetInstanceID().ToString(), () => { if (gameObject == null) { return; } gameObject.SetActive(false); // NOTE: See SMB-DestroySkillSelf MonoUtility.Instance.StoppableDelaySec(5.0f, "PandaSpaceDestroy" + GetInstanceID().ToString(), () => { if (gameObject == null) { return; } Destroy(gameObject); }); }); this.UpdateAsObservable() .Where(_ => _skillUserObj != null) .Take(1) .Subscribe(_ => { transform.parent = _skillUserObj.transform; _player = _skillUserObj.GetComponent <Player>(); }); this.UpdateAsObservable() .Where(_ => _player != null) .Where(_ => _player.Level.Cur.Value >= 11) .Take(1) .Subscribe(_ => _attackInfo = new AttackInfo(150, _attackInfo.MaxDeviation, _attackInfo.CriticalPercent)); }
void Awake() { _synchronizer = GetComponent <SkillSynchronizer>(); _hitRistrictor = new HitRistrictor(_hitInfo); _renderer = GetComponent <SpriteRenderer>(); _renderer.enabled = false; _animator = GetComponent <Animator>(); _animator.enabled = false; _collider = GetComponent <Collider2D>(); _collider.enabled = false; _instantiatedTime = Time.time; this.UpdateAsObservable() .Where(_ => Time.time - _instantiatedTime > _collisionOccurenceTime) .Take(1) .Subscribe(_ => { _renderer.enabled = true; _animator.enabled = true; _collider.enabled = true; }) .AddTo(this); }
void Awake() { _synchronizer = GetComponent <SkillSynchronizer>(); _hitRistrictor = new HitRistrictor(_hitInfo); Observable.Timer(TimeSpan.FromSeconds(_existTime)) .Where(_ => this != null) .Subscribe(_ => { gameObject.SetActive(false); Observable.Timer(TimeSpan.FromSeconds(5.0f)) .Where(none => this != null) .Subscribe(none => { Destroy(gameObject); }); }); this.UpdateAsObservable() .Where(_ => _skillUserObj != null) .Take(1) .Subscribe(_ => { _player = _skillUserObj.GetComponent <Player>(); }); this.UpdateAsObservable() .Where(_ => _player != null) .Subscribe(_ => { transform.position = _player.transform.position + _player.Weapon.AppearOffset[4]; }); this.UpdateAsObservable() .Where(_ => _player != null) .Where(_ => _player.Level.Cur.Value >= 11) .Take(1) .Subscribe(_ => _attackInfo = new AttackInfo(150, _attackInfo.MaxDeviation, _attackInfo.CriticalPercent)); }
void Awake() { _synchronizer = GetComponent <SkillSynchronizer>(); _hitRistrictor = new HitRistrictor(_hitInfo); MonoUtility.Instance.StoppableDelaySec(_existTime, "NageCtrlFalse" + GetInstanceID().ToString(), () => { if (gameObject == null) { return; } gameObject.SetActive(false); // NOTE: See SMB-DestroySkillSelf MonoUtility.Instance.StoppableDelaySec(5.0f, "NageCtrlDestroy" + GetInstanceID().ToString(), () => { if (gameObject == null) { return; } Destroy(gameObject); }); }); }
void Awake() { _synchronizer = GetComponent <SkillSynchronizer>(); _hitRistrictor = new HitRistrictor(_hitInfo); Observable.Timer(TimeSpan.FromSeconds(_existTime)) .Where(_ => this != null) .Subscribe(_ => { gameObject.SetActive(false); Observable.Timer(TimeSpan.FromSeconds(5.0f)) .Where(none => this != null) .Subscribe(none => { Destroy(gameObject); }); }); this.UpdateAsObservable() .Where(_ => _skillUserObj != null) .Subscribe(_ => { var player = _skillUserObj.GetComponent <Player>(); transform.position = player.transform.position + player.Weapon.AppearOffset[2]; }); }
void Awake() { _synchronizer = GetComponent <SkillSynchronizer>(); _hitRistrictor = new HitRistrictor(_hitInfo); MonoUtility.Instance.StoppableDelaySec(_existTime, "NageXFalse" + GetInstanceID().ToString(), () => { if (gameObject == null) { return; } gameObject.SetActive(false); // NOTE: Wait 5.0f in order to ensure value synchronization when hit at max range distance. MonoUtility.Instance.StoppableDelaySec(5.0f, "NageXDestroy" + GetInstanceID().ToString(), () => { if (gameObject == null) { return; } Destroy(gameObject); }); }); }
void Awake() { _synchronizer = GetComponent <SkillSynchronizer>(); _hitRistrictor = new HitRistrictor(_hitInfo); _timestamp = Time.time; _reduce = new Reduce(_reduceRatio); this.UpdateAsObservable() .Where(_ => _skillUserObj != null) .Take(1) .Where(_ => { var skillUser = _skillUserObj.GetComponent <Player>(); return(Client.Opponents.Contains(skillUser)); }) .Subscribe(_ => _renderer.color = new Color(0, 1, 1, 1)); Observable.Timer(TimeSpan.FromSeconds(_existTime)) .Where(_ => this != null) .Subscribe(_ => { gameObject.SetActive(false); Observable.Timer(TimeSpan.FromSeconds(5.0f)) .Where(none => this != null) .Subscribe(none => { Destroy(gameObject); }); }); _collider = GetComponent <BoxCollider2D>(); _collider.enabled = false; _animator = GetComponent <Animator>(); _animator.enabled = false; _audioSource = GetComponent <AudioSource>(); _audioSource.enabled = false; GetComponent <SpriteRenderer>().sprite = _prepareSprite; this.UpdateAsObservable() .Where(_ => _skillUserObj != null) .Where(_ => Time.time - _timestamp >= _hideStartTime) .Take(1) .Subscribe(_ => { _player = _skillUserObj.GetComponent <Player>(); _player.BodyCollider.enabled = false; _player.Renderers[0].enabled = false; _player.Renderers[1].enabled = false; MonoUtility.Instance.StoppableDelaySec(_hideTime, "NageSpaceHide" + GetInstanceID().ToString(), () => { _player.BodyCollider.enabled = true; _player.Renderers[0].enabled = true; _player.Renderers[1].enabled = true; }); }); this.UpdateAsObservable() .Where(_ => Time.time - _timestamp >= _collisionOccurenceTime) .Take(1) .Subscribe(_ => { _collider.enabled = true; _animator.enabled = true; _audioSource.enabled = true; }); this.UpdateAsObservable() .Where(_ => _player != null) .Where(_ => _player.Level.Cur.Value >= 11) .Take(1) .Subscribe(_ => _attackInfo = new AttackInfo(150, _attackInfo.MaxDeviation, _attackInfo.CriticalPercent)); }
void Awake() { _synchronizer = GetComponent <SkillSynchronizer>(); _hitRistrictor = new HitRistrictor(_hitInfo); _timestamp = Time.time; MonoUtility.Instance.StoppableDelaySec(_existTime, "NageSpaceFalse" + GetInstanceID().ToString(), () => { if (gameObject == null) { return; } gameObject.SetActive(false); // NOTE: See SMB-DestroySkillSelf MonoUtility.Instance.StoppableDelaySec(5.0f, "NageSpaceDestroy" + GetInstanceID().ToString(), () => { if (gameObject == null) { return; } Destroy(gameObject); }); }); _collider = GetComponent <BoxCollider2D>(); _collider.enabled = false; _animator = GetComponent <Animator>(); _animator.enabled = false; _audioSource = GetComponent <AudioSource>(); _audioSource.enabled = false; GetComponent <SpriteRenderer>().sprite = _prepareSprite; this.UpdateAsObservable() .Where(_ => _skillUserObj != null) .Where(_ => Time.time - _timestamp >= _hideStartTime) .Take(1) .Subscribe(_ => { _player = _skillUserObj.GetComponent <Player>(); _player.BodyCollider.enabled = false; _player.Renderers[0].enabled = false; _player.Renderers[1].enabled = false; MonoUtility.Instance.StoppableDelaySec(_hideTime, "NageSpaceHide" + GetInstanceID().ToString(), () => { _player.BodyCollider.enabled = true; _player.Renderers[0].enabled = true; _player.Renderers[1].enabled = true; }); }); this.UpdateAsObservable() .Where(_ => Time.time - _timestamp >= _collisionOccurenceTime) .Take(1) .Subscribe(_ => { _collider.enabled = true; _animator.enabled = true; _audioSource.enabled = true; }); this.UpdateAsObservable() .Where(_ => _player != null) .Where(_ => _player.Level.Cur.Value >= 11) .Take(1) .Subscribe(_ => _attackInfo = new AttackInfo(150, _attackInfo.MaxDeviation, _attackInfo.CriticalPercent)); }
void Awake() { _synchronizer = GetComponent <SkillSynchronizer>(); _hitRistrictor = new HitRistrictor(_hitInfo); }