/*public void fireFromRandomSpawner(){ * * //grab total number of spawners * upperBound = spawnerContainerScript.numberOfSpawnersDesired - 1; * * //grab a spawner from the list of spawners * int randomedSpawner = Mathf.FloorToInt(Random.Range(0.0f, upperBound)); * * //spawn projectile from random spawner * * //grab script of selected spawner * SpawnProjectile fireProjectileScript = * spawnerContainerScript.spawnerList[randomedSpawner].GetComponent<SpawnProjectile>(); * * //fire projectile * fireProjectileScript.fireProjectile(); * }*/ IEnumerator fireFromRandomSpawner() { //grab total number of spawners upperBound = spawnerContainerScript.numberOfSpawnersDesired - 1; //grab a spawner from the list of spawners int randomedSpawner = Mathf.FloorToInt(Random.Range(0.0f, upperBound)); //spawn projectile from random spawner //grab script of selected spawner SpawnProjectile fireProjectileScript = spawnerContainerScript.spawnerList[randomedSpawner].GetComponent <SpawnProjectile>(); //fire projectile fireProjectileScript.fireProjectile(); //wait n seconds according to parameter yield return(new WaitForSeconds(timeBetweenProjectiles)); //if game still in play //recursively launch a projectile every n seconds if (playingGame == true) { //recursively launch another StartCoroutine(fireFromRandomSpawner()); } }
public void OnCollisionEnter(Collision collision) { spawnProjectile = collision.gameObject.GetComponentInChildren <SpawnProjectile>(); if (spawnProjectile != null) { spawnProjectile.SetBullets(5); } spawnProjectile.SetAmmoIconFalse(); spawnProjectile = null; }
private void OnTriggerEnter(Collider other) { FindObjectOfType <AudioManager>().Play("Recharge"); spawnProjectile = other.gameObject.GetComponentInChildren <SpawnProjectile>(); if (spawnProjectile != null) { spawnProjectile.SetBullets(5); } spawnProjectile.SetAmmoIconFalse(); spawnProjectile = null; }
//public override TaskStatus MonitorFailWhenFalse() //{ // Debug.Log("MonitorCompleteWhenTrue"); // return TaskStatus.SUSPENDED; //} //public void AmmoAdquired() // //{ // spawnProjectile.OutofAmmo -= Recharge; //Unsubscribe event // EndMonitorWithSuccess(); //End condition //} //public override TaskStatus MonitorCompleteWhenTrue() //{ // if (Check()) // return TaskStatus.COMPLETED; //There is ammo right now // else // { // if(spawnProjectile != null) // { // spawnProjectile.OutofAmmo += Recharge; //subcrive to the event // } // return TaskStatus.SUSPENDED; // } // // return base.MonitorCompleteWhenTrue(); //} private bool SearchAmmo() { if (spawnProjectile != null) { return(true); } if (tank_turret != null) { spawnProjectile = tank_turret.GetComponent <SpawnProjectile>(); } if (spawnProjectile == null) { return(false); } //spawnProjectile = gam return(spawnProjectile != null); }
// private GameObject exclamation_UI; public override void OnStart() { if (exclamation_UI != null) { exclamation_UI.SetActive(true); } if (tank != null) { spawner = tank.GetComponentInChildren <SpawnProjectile>(); seek = tank.GetComponent <AgentPatrol>(); // seek.enabled = true; //if(spawner.isInSight) // wander.DeleteAgenPath(); //wander.ChangeTarget(); } base.OnStart(); }
public virtual void Start() { #endif current_time_between_throws = 0; players_initialized = false; spawner = new SpawnProjectile(transform, random, projectil, movement_speed, area_of_effect, base_damage, damage_distance_factor, platform); rotation = new AttackerRotation(transform, random); if (random) { throw_point.y = platform.transform.position.y; RandomCoordinate(); triggered = false; if (trigger_with_platform) { move_to = platform.GetComponent <MoveTo>(); } current_throw_amount = 0; current_throw_time = MORTAR_TIME_BETWEEN_THROWS; } else { if (!attack_player) { foreach (Transform child in transform) { if (child.tag == "Target") { coordinates_list.Add(child.position); } } } throw_point_index = 0; current_time_interval = 0; } }
public void NotifyProjectileSpawn(IProjectile p) { var sp = new SpawnProjectile(_navGrid, p); _packetHandlerManager.BroadcastPacket(sp, Channel.CHL_S2C); }
public void NotifyProjectileSpawn(int userId, IProjectile projectile) { var spawnProjectilePacket = new SpawnProjectile(_navGrid, projectile); _packetHandlerManager.SendPacket(userId, spawnProjectilePacket, Channel.CHL_S2C); }
public override bool HandlePacket(Peer peer, byte[] data) { var start = new StatePacket2(PacketCmd.PKT_S2C_StartSpawn); _game.PacketHandlerManager.sendPacket(peer, start, Channel.CHL_S2C); _logger.LogCoreInfo("Spawning map"); int playerId = 0; foreach (var p in _playerManager.GetPlayers()) { var spawn = new HeroSpawn(p.Item2, playerId++); _game.PacketHandlerManager.sendPacket(peer, spawn, Channel.CHL_S2C); var info = new AvatarInfo(p.Item2); _game.PacketHandlerManager.sendPacket(peer, info, Channel.CHL_S2C); } var peerInfo = _playerManager.GetPeerInfo(peer); var bluePill = _itemManager.GetItemType(_game.Map.MapGameScript.BluePillId); var itemInstance = peerInfo.Champion.getInventory().SetExtraItem(7, bluePill); var buyItem = new BuyItemResponse(peerInfo.Champion, itemInstance); _game.PacketHandlerManager.sendPacket(peer, buyItem, Channel.CHL_S2C); // Runes byte runeItemSlot = 14; foreach (var rune in peerInfo.Champion.RuneList._runes) { var runeItem = _itemManager.GetItemType(rune.Value); var newRune = peerInfo.Champion.getInventory().SetExtraItem(runeItemSlot, runeItem); _playerManager.GetPeerInfo(peer).Champion.GetStats().AddModifier(runeItem); runeItemSlot++; } // Not sure why both 7 and 14 skill slot, but it does not seem to work without it var skillUp = new SkillUpResponse(peerInfo.Champion.NetId, 7, 1, (byte)peerInfo.Champion.getSkillPoints()); _game.PacketHandlerManager.sendPacket(peer, skillUp, Channel.CHL_GAMEPLAY); skillUp = new SkillUpResponse(peerInfo.Champion.NetId, 14, 1, (byte)peerInfo.Champion.getSkillPoints()); _game.PacketHandlerManager.sendPacket(peer, skillUp, Channel.CHL_GAMEPLAY); peerInfo.Champion.GetStats().setSpellEnabled(7, true); peerInfo.Champion.GetStats().setSpellEnabled(14, true); peerInfo.Champion.GetStats().setSummonerSpellEnabled(0, true); peerInfo.Champion.GetStats().setSummonerSpellEnabled(1, true); var objects = _game.ObjectManager.GetObjects(); foreach (var kv in objects) { if (kv.Value is LaneTurret) { var turret = kv.Value as LaneTurret; var turretSpawn = new TurretSpawn(turret); _game.PacketHandlerManager.sendPacket(peer, turretSpawn, Channel.CHL_S2C); // Fog Of War var fogOfWarPacket = new FogUpdate2(turret, _networkIdManager); _game.PacketHandlerManager.broadcastPacketTeam(turret.Team, fogOfWarPacket, Channel.CHL_S2C); // To suppress game HP-related errors for enemy turrets out of vision var setHealthPacket = new SetHealth(turret); _game.PacketHandlerManager.sendPacket(peer, setHealthPacket, Channel.CHL_S2C); foreach (var item in turret.Inventory) { if (item == null) { continue; } _game.PacketNotifier.NotifyItemBought(turret, item as Item); } continue; } else if (kv.Value is LevelProp) { var levelProp = kv.Value as LevelProp; var levelPropSpawnPacket = new LevelPropSpawn(levelProp); _game.PacketHandlerManager.sendPacket(peer, levelPropSpawnPacket, Channel.CHL_S2C); continue; } else if (kv.Value is Champion) { var champion = kv.Value as Champion; if (champion.IsVisibleByTeam(peerInfo.Champion.Team)) { var enterVisionPacket = new EnterVisionAgain(champion); _game.PacketHandlerManager.sendPacket(peer, enterVisionPacket, Channel.CHL_S2C); } } else if (kv.Value is Inhibitor || kv.Value is Nexus) { var inhibtor = kv.Value as AttackableUnit; var minionSpawnPacket = new MinionSpawn2(inhibtor.NetId); _game.PacketHandlerManager.sendPacket(peer, minionSpawnPacket, Channel.CHL_S2C); var setHealthPacket = new SetHealth(inhibtor.NetId); _game.PacketHandlerManager.sendPacket(peer, setHealthPacket, Channel.CHL_S2C); continue; } else if (kv.Value is Projectile) { var projectile = kv.Value as Projectile; if (projectile.IsVisibleByTeam(peerInfo.Champion.Team)) { var spawnProjectilePacket = new SpawnProjectile(projectile); _game.PacketHandlerManager.sendPacket(peer, spawnProjectilePacket, Channel.CHL_S2C); } continue; } else { _logger.LogCoreWarning("Object of type: " + kv.Value.GetType() + " not handled in HandleSpawn."); } } // TODO shop map specific? // Level props are just models, we need button-object minions to allow the client to interact with it if (peerInfo != null && peerInfo.Team == TeamId.TEAM_BLUE) { // Shop (blue team) var minionSpawnPacket = new MinionSpawn2(0xff10c6db); _game.PacketHandlerManager.sendPacket(peer, minionSpawnPacket, Channel.CHL_S2C); var setHealthPacket = new SetHealth(0xff10c6db); _game.PacketHandlerManager.sendPacket(peer, setHealthPacket, Channel.CHL_S2C); } else if (peerInfo != null && peerInfo.Team == TeamId.TEAM_PURPLE) { // Shop (purple team) var minionSpawnPacket = new MinionSpawn2(0xffa6170e); _game.PacketHandlerManager.sendPacket(peer, minionSpawnPacket, Channel.CHL_S2C); var setHealthPacket = new SetHealth(0xffa6170e); _game.PacketHandlerManager.sendPacket(peer, setHealthPacket, Channel.CHL_S2C); } var endSpawnPacket = new StatePacket(PacketCmd.PKT_S2C_EndSpawn); return(_game.PacketHandlerManager.sendPacket(peer, endSpawnPacket, Channel.CHL_S2C)); }
public void notifyProjectileSpawn(Projectile p) { var sp = new SpawnProjectile(p); _game.PacketHandlerManager.broadcastPacket(sp, Channel.CHL_S2C); }
public static void notifyProjectileSpawn(Projectile p) { var sp = new SpawnProjectile(p); PacketHandlerManager.getInstace().broadcastPacket(sp, Channel.CHL_S2C); }
public override void Init(SpawnProjectile sp) { myColor = sp.GetInfoCurrentAmmo().myColor; this.GetComponent <Renderer>().material = materialsColor[(int)myColor]; base.Init(sp); }
private void Awake() { myProjectile = GetComponent <SpawnProjectile>(); }
public virtual void Init(SpawnProjectile spawnProjectile) { sp = spawnProjectile; }