コード例 #1
0
        /// <summary>
        /// Scroll the view to a specified horizontal coordinate.
        /// Optionally, apply camera shake effect
        /// FYI V-scrolling is blocked
        /// </summary>
        public void UpdateCameraPosition(float x, GameTime gameTime)
        {
            var position = new Vector2(x, 0);

            position = CamShaker.ShakeIfShaking(position, gameTime);

            var potentialX = (int)position.X - (ViewArea.Width / 2);
            var potentialY = (int)position.Y - (ViewArea.Height / 2);

            if (potentialX < LevelArea.X)
            {
                potentialX = LevelArea.X;
            }
            if (potentialX > LevelArea.Right - ViewArea.Width)
            {
                potentialX = LevelArea.Right - ViewArea.Width;
            }

            if (potentialY < LevelArea.Y)
            {
                potentialY = LevelArea.Y;
            }
            if (potentialY > LevelArea.Bottom - ViewArea.Height)
            {
                potentialY = LevelArea.Bottom - ViewArea.Height;
            }

            ViewArea = new Rectangle(potentialX, potentialY, ViewArea.Width, ViewArea.Height);
        }
コード例 #2
0
 /**
  * Called before first frame update and used to instantiate our variables.
  */
 void Start()
 {
     _anim        = this.GetComponentInChildren <Animator>();
     player       = this.GetComponent <PlayerController>();
     slashSpawner = this.GetComponent <SwordSlashSpawner>();
     dm           = this.GetComponent <DamageManager>();
     _cs          = player._cShaker;
 }
コード例 #3
0
ファイル: PlayerController.cs プロジェクト: kontroman/OLD-45
 private void OnCollisionEnter2D(Collision2D col)
 {
     if (col.gameObject.tag == "Ground")
     {
         if (isJumping)
         {
             CamShaker.DoShake(1, .5f);
         }
         isJumping = false;
     }
 }
コード例 #4
0
    /**
     * Called before any of the Update methods are called for the first time.
     */
    private void Start()
    {
        health     = startHealth;
        healHealth = startHealth;
        edgeWidth  = healthIndicator.GetFloat("edgeWidth");
        SetHeroColor();
        this.setDefaultMats();

        _cs           = this.GetComponent <PlayerController>()._cShaker;
        gameOverState = this.GetComponent <GameOverState>();
    }
コード例 #5
0
    public void CheckCode()
    {
        string codeText = code.ToString();

        if (_field.text == codeText)
        {
            GameController.FinishScene();
        }
        else
        {
            CamShaker.DoShake(3, 0.5f);
        }
    }
コード例 #6
0
 private void Awake()
 {
     instance = this;
 }
コード例 #7
0
 public void Handle(PlayerHitMessage message)
 {
     // TODO BDM: Temp test for cam shake
     CamShaker.StartShaking(10f, 1f);
     //game.AddObject(new Particle(game, new Vector2(Position.X + (HorizontalDirection * 40), Position.Y), HorizontalDirection));
 }
コード例 #8
0
 private void Awake()
 {
     Instance = this;
     shake    = new Shake(Shake.ShakeSettings.Default);
 }
コード例 #9
0
ファイル: PlayerPatch.cs プロジェクト: cybergen/SurtlingHelm
        private static void Postfix(Player __instance, ref Attack ___m_currentAttack, ref float ___m_lastCombatTimer, Rigidbody ___m_body, ZSyncAnimation ___m_zanim,
                                    CharacterAnimEvent ___m_animEvent, VisEquipment ___m_visEquipment, Attack ___m_previousAttack, float ___m_timeSinceLastAttack)
        {
            _hitEffectCooldown -= Time.deltaTime;

            var helm = __instance.GetInventory().GetAllItems().
                       FirstOrDefault(v => v.m_shared.m_name == "$custom_item_laserhelm");

            if (_cam == null)
            {
                _cam = Camera.main;
            }

            if (helm != null && helm.m_equiped)
            {
                var firing      = false;
                var firePressed = Input.GetKey(SurtlingHelm.SurtlingFireKey);
                if (firePressed && (!SurtlingHelm.ConsumeCoresAsFuel.Value || _laserTimeRemaining > 0f))
                {
                    firing = true;
                    _laserTimeRemaining -= Time.deltaTime;
                }
                else if (firePressed)
                {
                    //Look for surtling core in inventory and consume if have, otherwise show error message
                    var cores = __instance.GetInventory().GetAllItems().FirstOrDefault(i => i.m_shared.m_name == "$item_surtlingcore");
                    if (cores == null || cores.m_stack == 0)
                    {
                        MessageHud.instance.ShowMessage(MessageHud.MessageType.Center, Language.LanguageData.NeedResourcesErrorValue);
                    }
                    else
                    {
                        __instance.GetInventory().RemoveOneItem(cores);
                        _laserTimeRemaining = SurtlingHelm.SecondsOfUsageGrantedPerCore.Value;
                        firing = true;
                    }
                }

                if (firing)
                {
                    if (!_wasFiring || _leftEyeBeam == null)
                    {
                        _wasFiring = true;
                        var leftGO = GameObject.Instantiate(AssetHelper.EyeBeamPrefab);
                        _leftEyeBeam = leftGO.transform;

                        var rightGO = GameObject.Instantiate(AssetHelper.EyeBeamPrefab);
                        _rightEyeBeam = rightGO.transform;

                        _shaker                     = _cam.gameObject.AddComponent <CamShaker>();
                        _shaker.m_continous         = true;
                        _shaker.m_continousDuration = 0.75f;
                        _shaker.m_strength          = 1f;
                    }

                    if (__instance.IsPlayer() && helm != null && helm.m_equiped)
                    {
                        var head     = __instance.m_head;
                        var position = head.position + head.up * 0.18f;
                        var forward  = head.right;
                        var right    = head.forward;

                        var dir        = _cam.transform.forward;
                        var startPoint = position + forward * 0.4f;
                        var endPoint   = dir * 60 + _cam.transform.position;

                        _leftEyeBeam.position  = position + right * 0.06f;
                        _rightEyeBeam.position = position - right * 0.06f;
                        _leftEyeBeam.forward   = _rightEyeBeam.forward = dir;

                        bool hasDoneFlash = false;
                        bool didDamage    = false;
                        var  distToPlayer = Vector3.Distance(_cam.transform.position, __instance.transform.position);
                        foreach (var hit in Physics.RaycastAll(_cam.transform.position + dir * distToPlayer, dir, 50f))
                        {
                            var newEndpoint = hit.point;
                            var newDir      = (newEndpoint - position).normalized;
                            _leftEyeBeam.forward = _rightEyeBeam.forward = newDir;

                            if (!hasDoneFlash)
                            {
                                var goOne = GameObject.Instantiate(AssetHelper.EyeHitPrefab, hit.point + right * 0.06f - dir * 0.07f, Quaternion.identity);
                                var goTwo = GameObject.Instantiate(AssetHelper.EyeHitPrefab, hit.point - right * 0.06f - dir * 0.07f, Quaternion.identity);
                                goOne.SetActive(true);
                                goTwo.SetActive(true);
                                hasDoneFlash = true;
                            }

                            if (_hitEffectCooldown <= 0f)
                            {
                                var damageType = new HitData.DamageTypes
                                {
                                    m_damage  = SurtlingHelm.BasePhysicalDamage.Value,
                                    m_fire    = SurtlingHelm.BaseLaserDamage.Value,
                                    m_chop    = SurtlingHelm.ChopDamage.Value,
                                    m_pickaxe = SurtlingHelm.BasePhysicalDamage.Value,
                                };
                                var hitData = new HitData
                                {
                                    m_hitCollider = hit.collider,
                                    m_attacker    = __instance.GetZDOID(),
                                    m_dir         = dir,
                                    m_point       = hit.point,
                                    m_skill       = Skills.SkillType.FireMagic,
                                    m_pushForce   = SurtlingHelm.KnockbackForce.Value,
                                    m_blockable   = true,
                                    m_dodgeable   = false,
                                    m_damage      = damageType
                                };

                                var damagable = hit.collider.gameObject.GetComponent <IDestructible>();
                                if (damagable == null)
                                {
                                    damagable = hit.collider.GetComponentInParent <IDestructible>();
                                }
                                if (damagable == null)
                                {
                                    damagable = hit.collider.gameObject.GetComponentInChildren <IDestructible>();
                                }
                                if (damagable != null)
                                {
                                    damagable.Damage(hitData);
                                    didDamage = true;
                                }
                            }
                        }
                        if (didDamage)
                        {
                            _hitEffectCooldown = SurtlingHelm.LaserHitInterval.Value;
                        }
                    }
                }
                else if (_wasFiring || _leftEyeBeam != null)
                {
                    _wasFiring = false;
                    ZNetScene.instance.m_instances.Remove(_leftEyeBeam.GetComponent <ZNetView>().GetZDO());
                    ZNetScene.instance.m_instances.Remove(_rightEyeBeam.GetComponent <ZNetView>().GetZDO());
                    _leftEyeBeam.GetComponent <ZNetView>().Destroy();
                    _rightEyeBeam.GetComponent <ZNetView>().Destroy();
                    _leftEyeBeam  = null;
                    _rightEyeBeam = null;
                    Object.Destroy(_shaker);
                    _shaker = null;
                }
            }
        }