/// <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); }
/** * 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; }
private void OnCollisionEnter2D(Collision2D col) { if (col.gameObject.tag == "Ground") { if (isJumping) { CamShaker.DoShake(1, .5f); } isJumping = false; } }
/** * 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>(); }
public void CheckCode() { string codeText = code.ToString(); if (_field.text == codeText) { GameController.FinishScene(); } else { CamShaker.DoShake(3, 0.5f); } }
private void Awake() { instance = this; }
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)); }
private void Awake() { Instance = this; shake = new Shake(Shake.ShakeSettings.Default); }
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; } } }