void Shoot(BULLET_TYPE bullet_type) { subGotoPosition = enemyposi.transform.position - muzzlesub.transform.position; mainGotoPosition = enemyposi.transform.position - muzzlemain.transform.position; // 弾丸の複製 switch (bullet_type) { case BULLET_TYPE.AUTO_SHOOT: bulletsmain = GameObject.Instantiate(bullet_auto) as GameObject; bulletssub = GameObject.Instantiate(bullet_auto) as GameObject; break; case BULLET_TYPE.CHARGE_SHOOT: bulletsmain = GameObject.Instantiate(bullet_charge) as GameObject; bulletssub = GameObject.Instantiate(bullet_charge) as GameObject; break; } // Rigidbodyに力を加えて発射 bulletsmain.GetComponent <Rigidbody>().AddForce(mainGotoPosition * B_SPEED[Shooting_2.iNowChar, iNowBulletLevel]); bulletssub.GetComponent <Rigidbody>().AddForce(subGotoPosition * B_SPEED[Shooting_2.iNowChar, iNowBulletLevel]); // 弾丸の位置を調整 bulletsmain.transform.position = muzzlemain.position; bulletssub.transform.position = muzzlesub.position; }
void OnTriggerEnter2D(Collider2D collision) { print("start of collision"); if (collision.gameObject.GetComponent <bullet_controller>()) { int damage = collision.gameObject.GetComponent <bullet_controller>().damage; BULLET_TYPE type = collision.gameObject.GetComponent <bullet_controller>().type; print("in first if"); if (type == BULLET_TYPE.ENEMY) { Destroy(collision.gameObject); hp -= damage; if (hp <= 0) { Destroy(gameObject); if (placed != TOWER_TYPE.NULL) { Destroy(rightTower); Destroy(leftTower); } Instantiate(explosion, transform.position, Quaternion.identity); } print("skyship taking damage"); } } }
public void Init(BULLET_TYPE pType, float pPower, bool pUseGravity, Vector3 pDir, long pDamage, float pGravity = 7.0f) { this.transform.position = originObj.transform.position; //this.transform.localScale = new Vector3(1, 1, 1); type = pType; //rangeCollider = parentMonster.GetComponent<cEnemy_monster>().notizer.GetComponent<CircleCollider2D>(); //attackRange = rangeCollider.radius; damage = pDamage; splitCount = 0; explodeOn = false; explodeTime = 3.0f; isCollide = false; upBlockedContinue = false; gravityAmount = pGravity; flyingTime = 0; defaultPower = pPower; changingPower = defaultPower; isReflectOn = true; isGravityOn = pUseGravity; SetDir(pDir); isInit = true; }
public Bullet AddBullet(BULLET_TYPE type) { string path = null; switch (type) { case BULLET_TYPE.B_HERO_DEF: //path = GamePath.WEAPON_BULLET_DEF; break; { return(AddBulletHero()); } case BULLET_TYPE.B_BOSS1_P1: { path = GamePath.WEAPON_BULLET_BOSS; return(AddBulletBoss1(path)); } case BULLET_TYPE.EGG_BULLET: { path = GamePath.WEAPON_BULLET_EGG; return(AddBulletBoss1(path)); } } return(null); }
public BulletService(BULLET_TYPE _typeOfBullet) { typeOfBullet = _typeOfBullet; objectPool = new ObjectPool <BulletController>(); if (!bulletHolder) { bulletHolder = new GameObject(); bulletHolder.name = "Bullet Holder"; } GameObject.DontDestroyOnLoad(bulletHolder); }
public Bullet(BULLET_TYPE bulletType, DIRECTION direction, Point location) { InitializeComponent(); SetTopLevel(false); this.direction = direction; this.bulletType = bulletType; Location = location; Size = new Size(TanksGame.bulletWidth, TanksGame.bulletHeight); }
public void setPattern (bool isMix, PATTERN_NAME patternName, float XScale, float YScale, float speed, float anlge, float speedRate, float angleRate, float interval, float BulletSpeedRate = 0.0f, float BulletAngleRate = 0.0f, int Count = 1, float MinInterval = 0.0f, float RotAngle = 90.0f, float RotAngleRate = 90.0f, float MaxAngle = 90.0f, int GroupCount = 0, BULLET_TYPE type = BULLET_TYPE.BASE, BULLET_IMAGE image = BULLET_IMAGE.BASE_BULLET1_1, float HomingRate = 0.0f, bool isHoming = false, float MoveTime = 0.0f, float StopTime = 0.0f, bool isMyPos = true, float StartX = 0.0f, float StartY = 0.0f) { m_isPatternMix = isMix; m_ePattern = patternName; ScaleXY.x = XScale; ScaleXY.y = YScale; m_fSpeed = speed; m_fAngle = anlge; m_fSpeedRate = speedRate; m_fAngleRate = angleRate; m_iFireCount = Count; m_fFireInterval = interval; m_fBullet_SpeedRate = BulletSpeedRate; m_fBullet_AngleRate = BulletAngleRate; m_fMaxAngle = MaxAngle; m_fRotateAngle = RotAngle; m_fRotateAngleRate = RotAngleRate; m_fMiniFireInterval = MinInterval; m_eType = type; m_eImage = image; m_iGroupCount = GroupCount; m_HomingRate = HomingRate; m_isHoming = isHoming; m_MoveTime = MoveTime; m_StopTime = StopTime; m_fStartPosX = StartX; m_fStartPosY = StartY; m_isMyPos = isMyPos; m_sImage = SpriteMGR.Instance.GetSprite(m_eImage); }
public Transform CreateBullet <T>(BULLET_TYPE type, Vector3 dir, float moveTime, float speed, Transform TargetPlace = null, int lifeSpan = 100, float damage = 5f, bool whos_shot = true) where T : k514BulletBridge { int index = (int)type; if (index >= pfab.Length) { index = pfab.Length; } Transform tmp = null; T tmp2 = null; k514BulletBridge tmp3 = null; int Cnt = bulletDisablePool[index].Count; if (Cnt < 1) { tmp = Instantiate(pfab[index]); tmp2 = tmp.gameObject.AddComponent <T>(); tmp2.SetID(index); } else { tmp3 = bulletDisablePool[index][Cnt - 1]; if (tmp3.GetType() == typeof(T)) { tmp2 = (T)tmp3; } else { tmp = tmp3.transform; Destroy(tmp.GetComponent <k514BulletBridge>()); tmp2 = tmp.gameObject.AddComponent <T>(); } tmp = tmp2.transform; tmp.gameObject.SetActive(true); bulletDisablePool[index].RemoveAt(Cnt - 1); } tmp2.Init(dir, moveTime, speed, lifeSpan, damage, whos_shot); if (TargetPlace != null) { tmp2.SetTargetTransform(TargetPlace); } return(tmp); }
public void setPattern(PatternState stat) { m_isPatternMix = stat.m_isPatternMix; m_ePattern = stat.m_ePattern; ScaleXY.x = stat.ScaleXY.x; ScaleXY.y = stat.ScaleXY.y; m_fSpeed = stat.m_fSpeed; m_fAngle = stat.m_fAngle; m_fSpeedRate = stat.m_fSpeedRate; m_fAngleRate = stat.m_fAngleRate; m_iFireCount = stat.m_iFireCount; m_fFireInterval = stat.m_fFireInterval; m_fBullet_SpeedRate = stat.m_fBullet_SpeedRate; m_fBullet_AngleRate = stat.m_fBullet_AngleRate; m_fRotateAngle = stat.m_fRotateAngle; m_fRotateAngleRate = stat.m_fRotateAngleRate; m_fMaxAngle = stat.m_fMaxAngle; m_fMiniFireInterval = stat.m_fMiniFireInterval; m_iGroupCount = stat.m_iGroupCount; m_eType = stat.m_eType; m_eImage = stat.m_eImage; m_HomingRate = stat.m_HomingRate; m_isHoming = stat.m_isHoming; m_StopTime = stat.m_StopTime; m_MoveTime = stat.m_MoveTime; m_fStartPosX = stat.m_fStartPosX; m_fStartPosY = stat.m_fStartPosY; m_isMyPos = stat.m_isMyPos; m_sImage = SpriteMGR.Instance.GetSprite(m_eImage); }
public static float GetBulletDamage(BULLET_TYPE bulletType) { switch (bulletType) { case BULLET_TYPE.FIRE: return(10); case BULLET_TYPE.ICE: return(5); case BULLET_TYPE.STONE: return(10); case BULLET_TYPE.LIGHT: return(15); default: return(10); } }
void PlayExplosionSound( BULLET_TYPE a, BULLET_TYPE b ) { GameObject soundEffect; AmmoShotAudio audio; soundEffect = ( GameObject ) Instantiate( Resources.Load( "SOUND_NODE" ) ); soundEffect.transform.position = transform.position; audio = soundEffect.GetComponent< AmmoShotAudio >(); if( a == BULLET_TYPE.YELLOW && b == BULLET_TYPE.YELLOW ) { audio.SetAudioSource( 10 ); } else { audio.SetAudioSource( ( (int) a + (int) b ) * 2 ); } }
void OnTriggerEnter2D(Collider2D collision) { //print(stats["hp"]); /* * int damage = collision.gameObject.GetComponent<bullet_controller>().damage; * Destroy(collision.gameObject); * stats["hp"]-= damage; * if(stats["hp"] <= 0){ * Destroy(gameObject); * Instantiate(explosion, transform.position, Quaternion.identity); * } */ if (collision.gameObject.GetComponent <bullet_controller>()) { int damage = collision.gameObject.GetComponent <bullet_controller>().damage; BULLET_TYPE type = collision.gameObject.GetComponent <bullet_controller>().type; if (type == BULLET_TYPE.FRIENDLY) { Destroy(collision.gameObject); stats["hp"] -= damage; Vector3 scaleChange = new Vector3(.25f * (float)stats["hp"] * stats["width"] / (float)stats["original_hp"], .25f, .25f); hpBarPrefab.transform.localScale = scaleChange; if (stats["hp"] <= 0) { Destroy(hpBarPrefab); skyship_controller.AwardMoney(stats["money"]); Destroy(gameObject); if (shooting) { Destroy(shooter); } Instantiate(explosion, transform.position, Quaternion.identity); } } } }
//this is called whenever a player is hit and basically resets the shield recharge variables. public void ShieldHit(BULLET_TYPE bullet) { if (m_shieldHealth > 0) { switch (bullet) { case BULLET_TYPE.plasma: m_shieldHealth -= GetComponentInParent <Shoot>().m_bulletImpact; break; case BULLET_TYPE.shotgun: m_shieldHealth -= m_playerStats.m_Shoot.shotgunDamage; break; } } if (m_shieldHealth <= 0) { if (GetComponent <MeshRenderer>().enabled) { // SFX FindObjectOfType <AudioManager>().Play("Shield Shatter"); Instantiate(m_Explosion, transform); } m_shieldHealth = 0; GetComponent <MeshRenderer>().enabled = false; m_playerStats.SetShieldState(false); // Stun the player if they are hit when shield down if (bullet == BULLET_TYPE.shotgun) { m_playerStats.stunTrigger = true; m_playerStats.StunTimer = m_playerStats.maxShotgunStunTime; } } m_timeSinceLastHit = Time.time; m_hitUpdate = Time.time; m_canRecharge = false; }
public void SetType(BULLET_TYPE pType) { type = pType; //switch (pType) //{ // case BULLET_TYPE.NORMAL: // maxSpeed = 300f; // curSpeed = maxSpeed; // break; // case BULLET_TYPE.SPLIT: // maxSpeed = 300f; // curSpeed = maxSpeed; // break; // case BULLET_TYPE.GRENADE: // maxSpeed = 500f; // curSpeed = maxSpeed; // break; //} }
//this is called whenever a player is hit and basically resets the shield recharge variables. public void ShieldHit(BULLET_TYPE bullet) { if (m_shieldHealth > 0) { switch (bullet) { case BULLET_TYPE.plasma: m_shieldHealth -= GetComponentInParent <Shoot>().m_bulletImpact; break; case BULLET_TYPE.shotgun: m_shieldHealth -= m_playerStats.m_Shoot.shotgunDamage; break; } } if (m_shieldHealth <= 0) { // SFX FindObjectOfType <AudioManager>().Play("Shield Shatter"); // Add the player's outline m_playerRenderer.materials[1].SetColor("_OutlineColor", Color.red); m_playerRenderer.materials[1].SetFloat("_Outline", 0.15f); m_shieldHealth = 0; GetComponent <MeshRenderer>().enabled = false; m_playerStats.SetShieldState(false); // Stun the player if they are hit when shield down if (bullet == BULLET_TYPE.shotgun) { m_playerStats.stunTrigger = true; m_playerStats.StunTimer = m_playerStats.maxShotgunStunTime; } } m_timeSinceLastHit = Time.time; m_hitUpdate = Time.time; m_canRecharge = false; }
public void FireBullet(Vector2 StartPos, float StartAngle, float StartSpeed, PatternState stat) { m_cStat = stat; transform.position = StartPos; if (transform.localScale != stat.ScaleXY) { transform.localScale = stat.ScaleXY; } SetSprite(m_cStat.m_sImage); m_fAngle = StartAngle; m_fSpeed = StartSpeed; m_eBulletType = m_cStat.m_eType; // SettingCollisionAndAngle(); PlayStopaAndMove(); m_isFire = true; StartTimer(3.0f); }
public void FireBullet(Vector2 StartPos, float StartAngle, float StartSpeed, PatternState stat, PatternState bulletstat) { // m_eType = MoverType.Bullet; m_cStat = stat; m_cBulletStat = bulletstat; transform.position = StartPos; if (transform.localScale != stat.ScaleXY) { transform.localScale = stat.ScaleXY; } SetSprite(m_cStat.m_sImage); m_fAngle = StartAngle; m_fSpeed = StartSpeed; m_eBulletType = m_cStat.m_eType; PlayStopaAndMove(); InstallTraill(); m_isFire = true; }
void Start() { player = GameObject.FindWithTag( TAGS.PLAYER ).transform; gameScript = GameObject.FindWithTag( TAGS.WORLD ).GetComponent< GameScript >(); rigidBody = GetComponent< Rigidbody >(); state = BULLET_STATE.GOING; direction = Vector3.zero; type = ( BULLET_TYPE ) BULLET_COUNTER; groupID = GROUP_COUNTER; YFlipBlocked = false; flipped = Vector3.one; IsDead = false; if( ++BULLET_COUNTER >= ( int ) BULLET_TYPE.COUNT ) { BULLET_COUNTER = 0; ++GROUP_COUNTER; } block_reverse_time = MAX_BLOCK_TIME; switch( type ) { case BULLET_TYPE.RED: { trail.material = ( Material ) Instantiate( Resources.Load( "BULLET_TRAIL_RED_MATERIAL" ) ); } break; case BULLET_TYPE.PURPLE: { trail.material = ( Material ) Instantiate( Resources.Load( "BULLET_TRAIL_PURPLE_MATERIAL" ) ); } break; case BULLET_TYPE.YELLOW: { trail.material = ( Material ) Instantiate( Resources.Load( "BULLET_TRAIL_YELLOW_MATERIAL" ) ); } break; } }
public Bullet(int damage, float speed, BULLET_TYPE bulletType) { this.damage = damage; this.speed = speed; this.bulletType = bulletType; }