// Start is called before the first frame update void Start() { spawnZones = GameObject.FindWithTag("Respawn").GetComponent <SpawnZones>(); score = GameObject.FindWithTag("HUD").GetComponent <Text>(); results = GameObject.FindWithTag("Finish").GetComponent <Canvas>(); results.enabled = false; input = GameObject.FindWithTag("Player").GetComponent <UserInput>(); }
void Start() { rigidbody = GetComponent <Rigidbody>(); spawnZones = FindObjectOfType <SpawnZones>(); killZone = spawnZones.transform; colorSprite.color = playerColor; //cubeRenderer.material.color = playerColor; audioSource = GetComponent <AudioSource>(); //cubeRenderer.material.color = playerColor; }
/* Useful info * Main.halloween; * Main.xMas; * Main.moonPhase; * NPC.MoonLordCountdown; * NPC.saved??? * NPC.downed??? * NPC.waveNumber */ public static bool SupressSpawns(NPCSpawnInfo info, SpawnFlags required = SpawnFlags.None, SpawnZones requiredZones = SpawnZones.None, SpawnFlags forbidden = SpawnFlags.Forbidden, SpawnZones forbiddenZones = SpawnZones.Forbidden) { forbidden &= ~required; forbiddenZones &= ~requiredZones; ProcessSpawnInfo(info); return ((currentFlags & forbidden) != SpawnFlags.None || (currentZones & forbiddenZones) != SpawnZones.None || (currentFlags & required) != required || (currentZones & requiredZones) != requiredZones); }
// Use this for initialization void Start() { // players = GameObject.FindGameObjectsWithTag ("Player"); // // print (players [0]); myBody = GetComponent <Rigidbody> (); myCol = GetComponent <SphereCollider> (); spawnZone = FindObjectOfType <SpawnZones>(); renderer = GetComponent <Renderer>(); offset = new Vector3(0, transform.localScale.y / 2 + 1.5f, 0); }
private static void ProcessSpawnInfo(NPCSpawnInfo info) { Player player = info.player; if (Main.time == currentTime && player.whoAmI == currentPlayer) { return; } currentTime = Main.time; currentPlayer = player.whoAmI; MyPlayer modPlayer = player.GetModPlayer <MyPlayer>(); currentZones = (SpawnZones) ((int)player.zone1 + ((int)player.zone2 << 1) + ((int)player.zone3 << 2) + ((int)player.zone4 << 3)); bool notUnderground = player.position.Y < Main.worldSurface; currentFlags = (info.desertCave ? SpawnFlags.Desertcave : SpawnFlags.None) | (info.granite ? SpawnFlags.Granite : SpawnFlags.None) | (info.marble ? SpawnFlags.Marble : SpawnFlags.None) | (info.lihzahrd ? SpawnFlags.Lihzahrd : SpawnFlags.None) | (info.spiderCave ? SpawnFlags.SpiderCave : SpawnFlags.None) | (info.sky ? SpawnFlags.Sky : SpawnFlags.None) | (info.water ? SpawnFlags.Water : SpawnFlags.None) | (info.playerSafe ? SpawnFlags.SafeWall : SpawnFlags.None) | (info.playerInTown ? SpawnFlags.Town : SpawnFlags.None) | (info.invasion ? SpawnFlags.Invasion : SpawnFlags.None) | (Main.bloodMoon && !Main.dayTime && notUnderground ? SpawnFlags.Bloodmoon : SpawnFlags.None) | (Main.eclipse && Main.dayTime && notUnderground ? SpawnFlags.Eclipse : SpawnFlags.None) | (Main.pumpkinMoon && !Main.dayTime && notUnderground ? SpawnFlags.PumpkinMoon : SpawnFlags.None) | (Main.snowMoon && !Main.dayTime && notUnderground ? SpawnFlags.FrostMoon : SpawnFlags.None) | (Main.slimeRainTime != 0.0 && notUnderground ? SpawnFlags.Slimerain : SpawnFlags.None) | (Main.expertMode ? SpawnFlags.Expert : SpawnFlags.None) | (Main.hardMode ? SpawnFlags.Hardmode : SpawnFlags.None) | (Main.dayTime ? SpawnFlags.Daytime : SpawnFlags.None) | (NPC.AnyDanger() ? SpawnFlags.Danger : SpawnFlags.None) | (modPlayer.ZoneSpirit ? SpawnFlags.Spirit : SpawnFlags.None) | (modPlayer.ZoneReach ? SpawnFlags.Reach : SpawnFlags.None) | (MyWorld.BlueMoon && !Main.dayTime && notUnderground ? SpawnFlags.BlueMoon : SpawnFlags.None) | (TideWorld.TheTide && player.ZoneBeach ? SpawnFlags.Tide : SpawnFlags.None); }
public void BeginInvasion() { if (!Enabled) { return; } RemoveSpawn(); CurrentWave = 1; InvasionType newType; City newCity; do { newType = (InvasionType)Utility.Random(10); }while (newType == InvasionType); do { newCity = (City)Utility.Random(9); }while (newCity == CurrentInvasion); CurrentInvasion = newCity; InvasionType = newType; SpawnZones = Defs[CurrentInvasion].SpawnRecs.ToList(); Beacon = new InvasionBeacon(this); Beacon.MoveToWorld(Defs[CurrentInvasion].BeaconLoc, Map); // Shuffle zones for (int i = 0; i < 8; i++) { var rec = SpawnZones[Utility.Random(SpawnZones.Count)]; SpawnZones.Remove(rec); SpawnZones.Insert(0, rec); } SpawnWave(); }
public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write(0); writer.Write((int)CurrentInvasion); writer.Write((int)InvasionType); writer.Write(Beacon); writer.Write(CurrentWave); writer.Write(SpawnZones == null ? 0 : SpawnZones.Count); SpawnZones.ForEach(rec => writer.Write(rec)); writer.Write(Spawn == null ? 0 : Spawn.Count); foreach (KeyValuePair <BaseCreature, List <BaseCreature> > kvp in Spawn) { writer.Write(kvp.Key); writer.Write(kvp.Value.Count); kvp.Value.ForEach(bc => writer.Write(bc)); } Timer.DelayCall(TimeSpan.FromSeconds(30), CleanupSpawn); }
void SpawnEnemy() { SpawnZones.spawnEnemy(Normal); }