public void DecreaseHealth(int amount) { curHealth -= amount; if (curHealth <= 0) { transform.parent.GetComponent<BuildAreaScript>().RebuildableArea(); fireState = Fires.NONE; } }
public void FromMapData(MapData mapData) { Turn = mapData.Turn; Walls = mapData.Walls.Select(item => new Position(item[0], item[1])).ToList(); Blocks = mapData.Blocks.Select(item => new Position(item[0], item[1])).ToList(); Players = mapData.Players; Me = mapData.Players.Find(p => p.Name == Consts.MyName); Bombs = mapData.Bombs; Items = mapData.Items; Fires = mapData.Fires.Select(item => new Position(item[0], item[1])).ToList(); MinX = Walls.Select(item => item.x).Min(); int MaxX = Walls.Select(item => item.x).Max(); SizeX = MaxX - MinX + 1; MinY = Walls.Select(item => item.y).Min(); int MaxY = Walls.Select(item => item.y).Max(); SizeY = MaxY - MinY + 1; logger.Debug($"MinX: {MinX}, SizeX: {SizeX}, MinY {MinY}, SizeY {SizeY}"); var ary2 = Enumerable.Range(MinY, SizeY).Select(y => { return(Enumerable.Range(MinX, SizeX).Select(x => { var cell = new Cell() { X = x, Y = y, Wall = Walls.Any(w => w.x == x && w.y == y), Block = Blocks.Any(b => b.x == x && b.y == y), AnyPlayer = Players.Any(p => p.pos.x == x && p.pos.y == y && p.Name != Consts.MyName), MyPosition = Players.Any(p => p.pos.x == x && p.pos.y == y && p.Name == Consts.MyName), Bomb = Bombs.Find(b => b.pos.x == x && b.pos.y == y), Item = Items.Any(i => i.pos.x == x && i.pos.y == y), Fire = Fires.Any(f => f.x == x && f.y == y) }; var pos = new Position(x, y); return new KeyValuePair <Position, Cell>(pos, cell); })); }).SelectMany(e => e); CellDict = new CellDict(ary2, MinX, SizeX, MinY, SizeY); SetAboutToFire(); SetFallingWall(); CellDict.SetDistance(Me.pos); CellDict.Log(); }
public static void Postfix(SubFire __instance, SubFire.RoomFire startInRoom, bool __state) { // Spent way too much time trying to get around a bug in dnspy that doesn't allow me to propery edit this method, so I'm going with the hacky solution. // Every time a Fire is created, the whole list of SubFire.availableNodes is cleared, then populated with any transforms that have 0 childCount. // Next, it chooses a random index, then spawns a fire in that node. // We can easily find where it is because it'll be the only Transform in SubFire.availableNodes with a childCount > 0 if (__state) { Fires fires = NitroxServiceLocator.LocateService <Fires>(); foreach (Transform transform in __instance.availableNodes) { if (transform.childCount > 0) { int nodeIndex = Array.IndexOf(__instance.roomFires[startInRoom.roomLinks.room].spawnNodes, transform); Fire fire = transform.GetComponentInChildren <Fire>(); fires.OnCreate(fire, startInRoom, nodeIndex); return; } } } }
public CyclopsFireCreatedProcessor(IPacketSender packetSender, Fires fires) { this.packetSender = packetSender; this.fires = fires; }
public CyclopsDamageProcessor(IPacketSender packetSender, Fires fires) { this.packetSender = packetSender; this.fires = fires; }
void OnMouseDown() { FirePerception scrpt; bool btcof; switch(fireState) { case Fires.NONE: Destroy(fireEffect); fireEffect = (GameObject)Instantiate(prefabSimple, new Vector3(transform.position.x, transform.position.y + 9.0f, transform.position.z), transform.rotation); fireEffect.transform.parent = transform; fireEffect.transform.Translate(3.75f * Vector3.forward); fireState = Fires.SIMPLE; break; case Fires.SIMPLE: scrpt = fireEffect.GetComponent<FirePerception>(); if (!scrpt.beingTakenCareOf) { btcof = scrpt.beingTakenCareOf; Destroy(fireEffect); fireEffect = (GameObject)Instantiate(prefabImproved, new Vector3(transform.position.x, transform.position.y + 9.0f, transform.position.z), transform.rotation); fireEffect.transform.parent = transform; fireEffect.transform.Translate(3.75f * Vector3.forward); scrpt = fireEffect.GetComponent<FirePerception>(); scrpt.beingTakenCareOf = btcof; fireState = Fires.IMPROVED; } break; case Fires.IMPROVED: scrpt = fireEffect.GetComponent<FirePerception>(); if (!scrpt.beingTakenCareOf) { btcof = scrpt.beingTakenCareOf; Destroy(fireEffect); fireEffect = (GameObject)Instantiate(prefabGreater, new Vector3(transform.position.x, transform.position.y + 9.0f, transform.position.z), transform.rotation); fireEffect.transform.parent = transform; fireEffect.transform.Translate(3.75f * Vector3.forward); scrpt = fireEffect.GetComponent<FirePerception>(); scrpt.beingTakenCareOf = btcof; } break; case Fires.GREATER: break; default: break; } }
public void setFireState(Fires state) { fireState = state; }