void SetGemsEffect(GameObject bullet) { for (int i = 0; i < gemManager.Types.Length; i++) { switch (gemManager.Types[i]) { case GemManager.GemType.Homing: Homing h = bullet.GetComponent <Homing>(); h.rotSpeed = gemManager.Amounts [i] * HOMING_ROT; h.enabled = true; break; case GemManager.GemType.Bouncing: PlayerProjectile p1 = bullet.GetComponent <PlayerProjectile> (); p1.bounces = gemManager.Amounts [i] / 4 + 1; p1.enabled = true; break; case GemManager.GemType.Poison: PlayerProjectile p2 = bullet.GetComponent <PlayerProjectile> (); p2.poisonDamage = gemManager.Amounts [i] * POISON_DAMAGE; p2.enabled = true; break; case GemManager.GemType.Vampire: PlayerProjectile p3 = bullet.GetComponent <PlayerProjectile> (); p3.vampireRecovery = gemManager.Amounts[i]; p3.enabled = true; break; } } }
protected override IEnumerator Fire() { yield return(new WaitForSeconds(attackRate)); while (true) { animationController.PlayAttackAnimation(); yield return(new WaitForSeconds(0.9f));//変数置いてやる必要があるかも Homing homing = new Homing(); homing.Velocity = 3f; // 仮の値 homing.AttackPoint = 20; homing.HomingStrength = homingStrength; // 仮の値 homing.Direction = transform.up; // 上方向 homing.Target = playerTf.gameObject; GameObject enemyBullet = BulletPool.Instance.GetInstance(homing); enemyBullet.GetComponent <BulletObject>().Force = Force.Enemy; enemyBullet.transform.position = this.transform.position + Vector3.up * 1.8f; GameObject effect = enemyBullet.transform.GetChild(0).gameObject; effect.GetComponent <Renderer>().material.SetColor(EmissionColor, homingColor); // クールダウン yield return(new WaitForSeconds(attackRate)); } }
static void Main() { const int Start = 10000; const int End = 10010; var ravenServer = new Server { Services = { Bombing.BindService(new PigeonConsumerImpl()), Homing.BindService(new HomingImpl()), }, }; for (int port = Start; port < End; port++) { ravenServer.Ports.Add(new ServerPort("localhost", port, ServerCredentials.Insecure)); Console.WriteLine($"GrpcRaven server listening on port {port}"); } ravenServer.Start(); Console.WriteLine("Press any key to stop the server..."); Console.ReadKey(); ravenServer.ShutdownAsync().Wait(); }
public void Explode(int gems, GemManager.GemType gemType) { int projectiles = gems * 2; for (int i = 0; i < projectiles; i++) { GameObject b = Instantiate(projectile, transform.position, Quaternion.Euler(0, 0, i * (360f / projectiles))); //TODO: usar el nuevo pooling b.SetActive(true); switch (gemType) { case GemManager.GemType.Homing: Homing h = b.GetComponent <Homing>(); h.rotSpeed = 7f; h.maxAngleDif = 90f; h.enabled = true; b.GetComponentInChildren <SpriteRenderer>().sprite = sprites[0]; break; case GemManager.GemType.Bouncing: b.GetComponent <PlayerProjectile>().bounces = gems; b.GetComponentInChildren <SpriteRenderer>().sprite = sprites[1]; break; } } }
// Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.Space)) { _bullet = BulletPool.GetInstance(new Homing()); Homing homing = _bullet.GetComponent <BulletObject>().bulletclass as Homing; homing.Velocity = 6f; homing.HomingStrength = 1f; homing.Target = GameObject.Find("Target"); homing.AttackPoint = 10; homing.Direction = new Vector3(0, 0, 1); particleColor = _homingColor; Generate(); } else if (Input.GetKeyDown(KeyCode.LeftShift)) { _bullet = BulletPool.GetInstance(new Straight()); Straight straight = _bullet.GetComponent <BulletObject>().bulletclass as Straight; straight.Velocity = 12f + Random.Range(-4f, 4f); straight.AttackPoint = 10; straight.Direction = Vector3.Normalize(GameObject.Find("Target").transform.position - this.transform.position); particleColor = _straightColor; Generate(); } }
public override void home(Homing homing_state) { // Always home XY together var homing_axes = homing_state.get_axes(); var home_xy = homing_axes.Contains(0) || homing_axes.Contains(1); var home_z = homing_axes.Contains(2); var updated_axes = new List <int>(); if (home_xy) { updated_axes.Add(0); updated_axes.Add(1); } if (home_z) { updated_axes.Add(2); } homing_state.set_axes(updated_axes); // Do actual homing if (home_xy) { this._home_axis(homing_state, 0, this.rails[0]); } if (home_z) { this._home_axis(homing_state, 2, this.rails[1]); } }
public void missileHandler(Homing.missileState ms) { if (ms == Homing.missileState.miss) { AddToScore(100); } }
void FireSpell() { spellRecharge = 0; Vector2 towards = Util.Convert(target.position) - Util.Convert(transform.position); Homing h = (Homing)Instantiate(spell, transform.position, transform.rotation); h.Fire(towards, target); }
private void SetHoming() { Homing homing = GetComponent <Homing>() ?? gameObject.AddComponent <Homing>(); //感知範囲に入るまで起動しない homing.enabled = false; InitBulletSearchArea(homing); }
public override void home(Homing homing_state) { // XXX - homing not implemented homing_state.set_axes(new List <int> { 0, 1, 2 }); homing_state.set_homed_position((0.0, 0.0, 0.0, null)); }
private void EndCharge() { Homing.TurnSelf(3, Vector3.right, transform); SetSpeed(originalspeed); //collider.isTrigger = false; ResetMaterials(); ResetTurnSpeed(); ischarging = false; }
void Start() { AwakeAudio = GetComponent <AudioSource> (); // Gets current attached audio source. AwakeAudio.panStereo = 0.04f * transform.position.x; // Pans audio based on x position. // Finds the player controller. if (playerControllerScript == null) { playerControllerScript = GameObject.Find("PlayerController_P1").GetComponent <PlayerController>(); } // Sets ricochet variables. isRicochet = playerControllerScript.isRicochet; if (isRicochet) { RicochetSound = GameObject.Find("RicochetSound").GetComponent <AudioSource> (); // Finds ricochet sound. } // Only count bullets shot after tutorial is complete. if (TutorialManager.Instance.tutorialComplete == true) { GameController.Instance.BulletsShot += 1; } // Bullet is set to homing but not a helix object. if (playerControllerScript.isHoming == true && BulletTypeName != ("Helix")) { homingScript = GetComponent <Homing> (); // Get the homing script. isHoming = true; // Set homing to true. homingScript.enabled = true; // Enable the homing script. if (BulletSpeedType == SpeedType.Unscaled) { float unscaledVelocity = BulletSpeedUnscaled * ((Time.unscaledDeltaTime / Time.timeScale) * FPSCounter.Instance.FramesPerSec); // Clamp maximum speed by velocity limits. homingScript.speed = Mathf.Clamp( unscaledVelocity, VelocityLimits.x, VelocityLimits.y ); } } camShakeScript = GameObject.Find("CamShake").GetComponent <CameraShake> (); // Find the camera shake. StartCameraShake(); // Give initial camera shake. CheckBulletIteration(); // Checks the iteration of the bullet. SetBulletVelocity(); }
void OnTriggerEnter2D(Collider2D c) { // レイヤー名を取得 string layerName = LayerMask.LayerToName(c.gameObject.layer); // レイヤー名がBullet (Player)以外の時は何も行わない if (layerName != "Bullet(Player)" && layerName != "BulletHoming(Player)") { return; } // PlayerBulletのTransformを取得 Transform playerBulletTransform = c.transform.parent; if (layerName == "Bullet(Player)") { // Bulletコンポーネントを取得 Bullet bullet = playerBulletTransform.GetComponent <Bullet>(); // ヒットポイントを減らす hp = hp - bullet.power; } else if (layerName == "BulletHoming(Player)") { // Bulletコンポーネントを取得 Homing homing = playerBulletTransform.GetComponent <Homing>(); // ヒットポイントを減らす hp = hp - homing.power; } // 弾の削除 Destroy(c.gameObject); // ヒットポイントが0以下であれば if (hp <= 0) { // スコアコンポーネントを取得してポイントを追加 FindObjectOfType <Score>().AddPoint(point); // 爆発 spaceship.Explosion(); // エネミーの削除 Destroy(gameObject); } else { spaceship.GetAnimator().SetTrigger("Damage"); } }
/*public void gatherMissiles() { foreach (GameObject missile in missileArray) { deadHomey = missile.GetComponent<Homing> (); if(deadHomey.activeMissile == false) { deadHomey.activeMissile = true; } } }*/ public int MissileCount() { int count = 0; for (int i = 0; i < missileArraySize; i++) { homey = missile.GetComponent<Homing> (); if(missileArray[i].activeInHierarchy == true) { count++; } } return count; }
private void OnTriggerEnter2D(Collider2D collision) { if (collision.tag == "Bullet") { Vector3 v = new Vector3(transform.position.x, transform.position.y); GameObject obj = Instantiate(_horming, v, Quaternion.identity); Homing h = obj.GetComponent <Homing>(); Bullet b = collision.gameObject.GetComponent <Bullet>(); Rigidbody2D rb = b.GetComponent <Rigidbody2D>(); h.SetDirection(Utils.GetDegree(rb)); _player.AddForce(rb.velocity.x, rb.velocity.y); b.Vanish(); } }
private void OnTriggerEnter2D(Collider2D collision) { switch (collision.tag) { case "Shot": { Shot shot = collision.gameObject.GetComponent <Shot>(); shot.Vanish(); } break; case "Horming": { Homing homing = collision.gameObject.GetComponent <Homing>(); homing.Vanish(); } break; } }
private static void Start() { try { Util.Debug("Hello, world."); Arcing.Initialise(); Curving.Initialise(); Homing.Initialise(); Momentum.Initialise(); Orbital.Initialise(); Straight.Initialise(); } catch (Exception ex) { DisplayTextToPlayer(GetLocalPlayer(), 0, 0, ex.Message); } }
public void FireMissile() { for (int i = 0; i < missileArraySize; i++) { homey = missile.GetComponent<Homing> (); if(missileArray[i].activeInHierarchy == false) { missileArray[i].transform.position = gameObject.transform.position; homey = missileArray[i].GetComponent<Homing> (); homey.lifetime = missileLifeTime; homey.missileVelocity = velocity; homey.turn = missileTurn; homey.startTime = Time.time; homey.hit = false; missileArray[i].SetActive(true); return; } } }
private float timeleft; // Left time for current interval #endregion Fields #region Methods public void missileHandler(Homing.missileState ms) { print("getting missile event"); if (ms == Homing.missileState.hit) { //healthAnimator = HealthBar.GetComponent<Animator> (); print("healthbar = " + healthAnimator); int newHealth = healthAnimator.GetInteger("healthBarAmount"); newHealth--; if(newHealth > 0) { healthAnimator.SetInteger("healthBarAmount", newHealth); } if(newHealth == 0) { DontDestroyOnLoad(gameObject); Application.LoadLevel("GameOver"); } } }
void ShootSquirt() { //Rigidbody2D SquirtClone; GameObject SquirtClone; //Rigidbody2D SquirtCloneRb2d; float SquirtCloneForce = 120f; float ThiefToGhostLerpDistancePct = 0.2f; //get intrapolated distance from thief to player Vector3 ThiefToGhostLerp = Vector3.Lerp(transform.position, GhostGameObject.transform.position, ThiefToGhostLerpDistancePct / ((transform.position - GhostGameObject.transform.position).magnitude)); //print("PointToPlayer-> X, Y : " + ThiefToGhostLerp.x + "," + ThiefToGhostLerp.y); print("Squirt Shot!"); //*calculate squirt rotation to point to ghost Quaternion SquirtRotationInDegrees_z = Quaternion.Euler(0f, 0f, GetAngleBetweenVectors(GhostGameObject.transform.position, transform.position) - 90); //*instantiate squirt in position and rotated SquirtClone = Instantiate(squirt, ThiefToGhostLerp, SquirtRotationInDegrees_z) as GameObject; //SquirtCloneRb2d = Instantiate(squirt, ThiefToGhostLerp, SquirtRotationInDegrees_z) as Rigidbody2D; Homing SquirtHomingScript = SquirtClone.GetComponent <Homing>(); SquirtHomingScript.Target = GhostGameObject; //*calculate normal vector from squirt to ghost Vector3 SquirtCloneToGhostNormal = (GhostGameObject.transform.position - SquirtClone.transform.position).normalized; //Vector3 SquirtCloneToGhostNormal = (GhostGameObject.transform.position - SquirtCloneRb2d.transform.position).normalized; //*apply force //SquirtClone.AddForce(SquirtCloneToGhostNormal * SquirtCloneForce); //SquirtCloneRb2d.AddForce(SquirtCloneToGhostNormal * SquirtCloneForce); //*pre shooting //Rigidbody2D ghostRb2d = GhostGameObject.GetComponent<Rigidbody2D>(); //Vector2 ghostVelocityV2 = ghostRb2d.velocity.normalized; //Vector3 ghostVelocityV3 = new Vector3(ghostVelocityV2.x, ghostVelocityV2.y, 0); //SquirtClone.AddForce((SquirtCloneToGhostNormal + ghostVelocityV3) * SquirtCloneForce); }
void _home_axis(Homing homing_state, int axis, PrinterRail rail) { // Determine movement var _tup_1 = rail.get_range(); var position_min = _tup_1.X; var position_max = _tup_1.Y; var hi = rail.get_homing_info(); var homepos = new List <double?> { null, null, null, null }; homepos[axis] = hi.position_endstop; if (axis == 0) { homepos[1] = 0.0; } var forcepos = homepos.ToList(); if (hi.positive_dir ?? false) { forcepos[axis] -= hi.position_endstop - position_min; } else { forcepos[axis] += position_max - hi.position_endstop; } // Perform homing double?limit_speed = null; if (axis == 2) { limit_speed = this.max_z_velocity; } homing_state.home_rails(new List <PrinterRail> { rail }, (forcepos[0], forcepos[1], forcepos[2], forcepos[3]), (homepos[0], homepos[1], homepos[2], homepos[3]), limit_speed); }
public override void home(Homing homing_state) { // Each axis is homed independently and in order foreach (var axis in homing_state.get_axes()) { if (axis == this.dual_carriage_axis) { var dc1 = this.dual_carriage_rails[0]; var dc2 = this.dual_carriage_rails[1]; var altc = this.rails[axis] == dc2; this._activate_carriage(0); this._home_axis(homing_state, axis, dc1); this._activate_carriage(1); this._home_axis(homing_state, axis, dc2); this._activate_carriage(altc ? 1 : 0); } else { this._home_axis(homing_state, axis, this.rails[axis]); } } }
// Update is called once per frame void Update() { if (Input.GetButtonDown("Fire1") && !use_health) { Debug.Log("Fired"); GameObject Clone; Clone = (Instantiate(skull, transform.position, transform.rotation)) as GameObject; settingsH = Clone.GetComponent <Homing>(); settingsH.time = time; settingsH.target = target; settingsL = Clone.GetComponent <Look>(); settingsL.target = target; settingsL.range = range; } //else if(use_health ) //{ //} }
void openTarget() { mousePos = Input.mousePosition; mousePos.z = 10f; mousePos = mainCamera.ScreenToWorldPoint(mousePos); RaycastHit[] hits = Physics.BoxCastAll(mousePos, Vector3.one * homingRange, (mousePos - Camera.main.transform.position), Quaternion.identity, 100f, LayerMask.GetMask("Default")); if (homingShot == true) { foreach (RaycastHit hit in hits) { if (laserGauge >= 20) { Debug.Log(hit.collider.gameObject.name); laserGauge -= 20; //ここでホーミングを打つ(つまり単発を高速レートで打つ感じ) //hit.collider.gameObjectでぶつかったオブジェクトのことを指す Homing homing = new Homing(); homing.Velocity = 10f; // 仮の値 homing.HomingStrength = 10f; // 仮の値 homing.Direction = transform.forward; homing.Target = hit.collider.gameObject; GameObject bullet = bulletPool.GetInstance(homing); GameObject effect = bullet.transform.GetChild(0).gameObject; effect.GetComponent <Renderer>().material.SetColor("_EmissionColor", _homingColor); bullet.GetComponent <BulletObject>().Force = Force.Player; bullet.transform.position = this.transform.position; } } homingRange = 1f; homingShot = false; Debug.Log(laserGauge); } }
private void Update() { if (target.activeSelf) { cannon.transform.LookAt(target.transform.position); if (Vector3.Distance(target.transform.position, transform.position) <= range) { if (fireTimer >= fireRate) { fireTimer = 0.0f; Homing homing = Instantiate(bullet, cannon.position, cannon.rotation).GetComponent <Homing>(); homing.SetTarget(target.gameObject); } fireTimer += Time.deltaTime; return; } fireTimer = 0.0f; } }
public override void home(Homing homing_state) { // Each axis is homed independently and in order foreach (var axis in homing_state.get_axes()) { var rail = this.rails[axis]; // Determine movement var _tup_1 = rail.get_range(); var position_min = _tup_1.X; var position_max = _tup_1.Y; var hi = rail.get_homing_info(); var homepos = new List <double?> { null, null, null, null }; homepos[axis] = hi.position_endstop; var forcepos = homepos.ToList(); if ((bool)hi.positive_dir) { forcepos[axis] -= 1.5 * (hi.position_endstop - position_min); } else { forcepos[axis] += 1.5 * (position_max - hi.position_endstop); } // Perform homing double?limit_speed = null; if (axis == 2) { limit_speed = this.max_z_velocity; } homing_state.home_rails(new List <PrinterRail> { rail }, (forcepos[0], forcepos[1], forcepos[2], forcepos[3]), (homepos[0], homepos[1], homepos[2], homepos[3]), limit_speed); } }
public void cmd_G28(Dictionary <string, object> parameters) { // Move to origin var axes = new List <int>(); foreach (var axis in "XYZ") { if (parameters.ContainsKey(axis.ToString())) { axes.Add(axis2pos[axis.ToString()]); } } if (axes.Count == 0) { axes.Add(0); axes.Add(1); axes.Add(2); } var homing_state = new Homing(this.printer); if (this.is_fileinput) { homing_state.set_no_verify_retract(); } try { homing_state.home_axes(axes); } catch (Exception ex) { throw new GCodeException("", ex); } foreach (var axis in homing_state.get_axes()) { this.base_position.Set(axis, this.homing_position.Get(axis)); } this.reset_last_position(); }
public void Shoot(GameObject projectile, Transform target) { if (beforeNextShot > 0) { return; } GameObject newProj = Instantiate(projectile, transform.position + transform.forward, Quaternion.Euler(0, transform.rotation.eulerAngles.y, 0)) as GameObject; Vector3 heading = target.position - transform.position; heading.Normalize(); LaserWarhead warhead = newProj.GetComponent <LaserWarhead>(); Homing homing = newProj.GetComponent <Homing>(); newProj.GetComponent <Rigidbody>().AddForce(heading * power, ForceMode.VelocityChange); if (warhead && homing) { warhead.Target = target; homing.Target = target; } beforeNextShot = rateOfFire; }
/*public void MoveByZ(tiltListener.direction newDirection) { if (newDirection == tiltListener.direction.up) { if (changeZState(1)) { transform.Translate(0f, 5f, -5f); transform.localScale.Scale(new Vector3(transform.localScale.x, transform.localScale.y, transform.localScale.z + 1f)); zpos++; } } else if (newDirection == tiltListener.direction.down) { if (changeZState(-1)) { transform.Translate(0f, -5f, 5f); transform.localScale.Scale(new Vector3(transform.localScale.x, transform.localScale.y, transform.localScale.z - 1f)); zpos--; } } }*/ /*public bool changeZState(int i) { bool success = false; if (i == 1) { if(currentZState == zState.far) { currentZState = zState.center; success = true; } else if(currentZState == zState.center) { currentZState = zState.close; success = true; } else if(currentZState == zState.close) { success = false; } } else if (i == -1) { if(currentZState == zState.close) { currentZState = zState.center; success = true; } else if(currentZState == zState.center) { currentZState = zState.far; success = true; } else if(currentZState == zState.far) { success = false; } } return success; }*/ public void missileHandler(Homing.missileState ms) { if (ms == Homing.missileState.hit) { } }
void SetHomingModeNoRaycast() { homing = Homing.NoRaycast; }
void SetHomingModeWithRaycast() { homing = Homing.WithRaycast; }
void SetHomingModeOff() { homing = Homing.Off; }
public abstract void home(Homing homing_state);
public override void AddSpellModifier(GameObject go) { Homing homing = go.AddComponent <Homing>(); }
public float Damage(float damage) { float actualDamage = 0; GetComponent <Rigidbody2D>().velocity = Vector3.zero; dmgOpt = (int)(dfc / 50); if (dmgOpt < 1) { dmgOpt = 1; } else if (dmgOpt > 90) { dmgOpt = 90; } damage = Mathf.Floor(damage * (100 - dmgOpt) / 100); if (damage <= 1) { damage = 1; } //Damage GameObject damageObj = Instantiate(Resources.Load(damagePath)) as GameObject; damageObj.transform.SetParent(canvas.transform); damageObj.GetComponent <Text> ().text = "-" + damage; damageObj.transform.position = new Vector3(gameObject.transform.position.x, gameObject.transform.position.y + 5, 0); damageObj.transform.localScale = new Vector3(0.08f, 0.08f, 0); if (preAttackObj != attackObj) { callHelpFlg = false; } if (!callHelpFlg) { if (taisyo || name == "shiro") { //Call My help preAttackObj = attackObj; callHelpFlg = true; foreach (GameObject obs in GameObject.FindGameObjectsWithTag("Enemy")) { if (!obs.GetComponent <EnemyHP>().taisyo&& obs.name != "shiro") { if (obs.GetComponent <Homing> ()) { Homing script = obs.GetComponent <Homing> (); script.helpTaisyoShiroFlg = true; script.nearObj = attackObj; script.AIType = 2; if (script.backShiroObj) { //toride ShiroSearch shiroScript = script.backShiroObj.GetComponent <ShiroSearch>(); HelpSyutsujinFromToride(script.backShiroObj, shiroScript.busyoObjList, shiroScript.AITypeList, shiroScript.busyoObjSize, shiroScript.outBusyoObjList); } } else if (obs.GetComponent <HomingLong> ()) { HomingLong script = obs.GetComponent <HomingLong> (); script.helpTaisyoShiroFlg = true; script.nearObj = attackObj; script.AIType = 2; if (script.backShiroFlg) { //toride ShiroSearch shiroScript = script.backShiroObj.GetComponent <ShiroSearch>(); HelpSyutsujinFromToride(script.backShiroObj, shiroScript.busyoObjList, shiroScript.AITypeList, shiroScript.busyoObjSize, shiroScript.outBusyoObjList); } } } } } } if (childQty <= 0) { life -= damage; //兵力減らす actualDamage = damage; } else { actualDamage = childHPTmp; childHPTmp -= damage; if (childHPTmp <= 0) { //dead child foreach (Transform child in transform) { if (child.tag == "EnemyChild") { child.transform.DetachChildren(); Destroy(child.gameObject); break; } } childQty -= 1; childHPTmp = childHP; } } return(actualDamage); }