示例#1
0
        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);
            });
        }
示例#2
0
        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);
            });
        }
示例#3
0
        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));
        }
示例#4
0
        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];
            });
        }
示例#5
0
        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);
        }
示例#6
0
        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()));
        }
示例#7
0
        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);
                });
            });
        }
示例#8
0
文件: PandaZ.cs 项目: moto2002/kikan
        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);
        }
示例#9
0
文件: PandaZ.cs 项目: bunashibu/kikan
        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];
            });
        }
示例#10
0
        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));
        }
示例#11
0
        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);
                });
            });
        }
示例#12
0
        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));
        }
示例#13
0
        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];
            });
        }
示例#14
0
        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));
        }
示例#15
0
        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);
        }
示例#16
0
        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));
        }
示例#17
0
        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);
                });
            });
        }
示例#18
0
        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];
            });
        }
示例#19
0
文件: NageX.cs 项目: moto2002/kikan
        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);
                });
            });
        }
示例#20
0
        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));
        }
示例#21
0
        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));
        }
示例#22
0
 void Awake()
 {
     _synchronizer  = GetComponent <SkillSynchronizer>();
     _hitRistrictor = new HitRistrictor(_hitInfo);
 }