public async Task Handle(ShootTarget message) { var board = await _session.Get <BattleShipBoard>(message.Id); board.Shoot(message.Target); await _session.Commit(); }
public Player(PlayerIndex playerIndex, InputManager inputManager, PlayerManager playerManager) { PlayerIndex = playerIndex; this.inputManager = inputManager; this.playerManager = playerManager; Target = new ShootTarget(inputManager, this); }
public Enemy GetTargetEnemy(ShootTarget shootAt) { if (enemies.Count == 0) { return(null); } switch (shootAt) { case ShootTarget.FIRST: return(GetMostAdvancedEnemy(enemies)); case ShootTarget.LAST: return(GetLeastAdvancedEnemy(enemies)); case ShootTarget.OLDEST: return(GetOldestEnemy(enemies)); case ShootTarget.RANDOM: return(GetRandomEnemy(enemies)); default: return(GetMostAdvancedEnemy(enemies)); } }
// Use this for initialization void Start( ) { m_shoot = GetComponent<ShootTarget>(); // add "reset" at the first time Instaniate it if (!m_shoot.resetFuncDic.ContainsKey("reset split")) m_shoot.resetFuncDic.Add("reset split", Reset); }
void ShootTarget() { ShootTarget script = gameObject.AddComponent <ShootTarget>(); script.Target = Target; script.DealDamage(Damage); script.Material = (Material)Resources.Load("Green"); }
// Use this for initialization void Start( ) { m_shoot = GetComponent <ShootTarget>(); // add "reset" at the first time Instaniate it if (!m_shoot.resetFuncDic.ContainsKey("reset split")) { m_shoot.resetFuncDic.Add("reset split", Reset); } }
void Start() { findTarget = GetComponent <FindTarget>(); shootTarget = GetComponent <ShootTarget>(); List <GameObject> nearbyEnemies = EnemySpawner.nearbyEnemies; findTarget.NearbyEnemies = nearbyEnemies; shootTarget.NearbyEnemies = nearbyEnemies; }
void OnTriggerEnter2D(Collider2D other) { if (shooter == Shooter.Player && other.gameObject.tag == "Player") { return; } if (shooter == Shooter.Enemy && other.gameObject.tag == "Enemy") { return; } if (other.gameObject.layer != gameObject.layer) { particles.Play(); spriteRenderer.enabled = false; ShootTarget target = other.gameObject.GetComponent <ShootTarget>(); if (target) { target.Damage(damage); } Destroy(gameObject, 0.15f); } }
// shoot one target with a kind of arrow and deal physical or magic damagement // if is not a magic, the last parameter is 0 public void Shoot(GameObject target, GameObject orbsPrefab, bool isMagic, float magicBaseDamge = 0) { if (target == null) { return; } GameObject arrow = (GameObject)PoolManager.GetInstance().GetPool(orbsPrefab).GetObject(orbsBirth.position); arrow.transform.LookAt(transform.forward); ShootTarget shoot = arrow.GetComponent <ShootTarget>(); if (shoot != null) { // reset all hit effect attached to this orb shoot.Reset(); shoot.target = target.transform; shoot.sizeY = target.GetComponent <Collider>().bounds.size.y / 2; // a physical attack if (!isMagic) { if (Random.value < PlayerData.GetInstance().critRate) { shoot.atk = PlayerData.GetInstance().crit; shoot.hitEffectPrefab = critAttackPrefab; } else { shoot.atk = PlayerData.GetInstance().atk; shoot.hitEffectPrefab = physicalAttackPrefab; } } else { shoot.atk = PlayerData.GetInstance().GetAttributeValue(GameCode.BasicAttributeName.Intelligence) + magicBaseDamge; } } }
public override void Start() { if (ShootSource == null) { throw new ArgumentException("ShootSource not set"); } if (ShootTarget == null) { throw new ArgumentException("ShootTarget not set"); } if (Light == null) { throw new ArgumentException("Light not set"); } if (ShootTrail == null) { throw new ArgumentException("ShootTrail not set"); } if (ShootImpact == null) { throw new ArgumentException("ShootImpact not set"); } if (BulletHole == null) { throw new ArgumentException("BulletHole not set"); } var muzzleFlashEntity = ShootSource.FindChild("MuzzleFlash"); muzzleFlashParticles = muzzleFlashEntity?.Get <ParticleSystemComponent>()?.ParticleSystem; muzzleFlashParticles?.Stop(); laserEffect = ShootTrail.ParticleSystem; laserEffect.Stop(); laserImpact = ShootImpact.ParticleSystem; laserImpact.Stop(); BulletHole.ParticleSystem.Enabled = true; BulletHole.ParticleSystem.Stop(); Light.Enabled = false; AudioEmitterComponent shootEmitter = Entity.FindChild("ShootSource").Get <AudioEmitterComponent>(); AudioEmitterComponent shootTargetEmitter = ShootTarget.Get <AudioEmitterComponent>(); // Load different shoot sound effects shootSounds = new AudioEmitterSoundController[4]; for (int i = 0; i < shootSounds.Length; i++) { shootSounds[i] = shootEmitter["Shoot" + i]; } // Load different impact sound effects impactSounds = new AudioEmitterSoundController[4]; for (int i = 0; i < impactSounds.Length; i++) { impactSounds[i] = shootTargetEmitter["Impact" + i]; } SoldierWeapon weapon = Entity.Get <SoldierWeapon>(); weapon.OnShotFired += (soldierWeapon, result) => { Script.AddTask(async() => await FireWeapon(result)); }; }