public override void OnEvent(BurnTree evnt) { if (evnt.Entity && evnt.Entity.isOwner) { ITreeCutState state = evnt.Entity.GetState <ITreeCutState>(); state.Burning = evnt.IsBurning; evnt.Entity.Freeze(false); } }
public override void OnEvent(DamageTree evnt) { if (evnt.TreeEntity) { ITreeCutState state = evnt.TreeEntity.GetState <ITreeCutState>(); int num = Mathf.Max(1, evnt.Damage); state.Damage += num; this.UpdateChunks(state, evnt.DamageIndex, num); } }
private void UpdateChunks(ITreeCutState state, int chunk, int damage) { int num = 10; while (damage > 0 && --num >= 0) { switch (chunk) { case 1: if (state.Chunk1 < 4) { state.Chunk1++; damage--; } else { chunk = 2; } break; case 2: if (state.Chunk2 < 4) { damage--; state.Chunk2++; } else { chunk = 3; } break; case 3: if (state.Chunk3 < 4) { damage--; state.Chunk3++; } else { chunk = 4; } break; case 4: if (state.Chunk4 < 4) { damage--; state.Chunk4++; } break; } } }
private void Explosion(float dist) { if (!this.Exploded) { if (BoltNetwork.isRunning) { if (this.LodTree) { BoltEntity component = this.LodTree.GetComponent <BoltEntity>(); if (component.isAttached) { this.Exploded = true; if (component.isOwner) { if (component.canFreeze) { component.Freeze(false); } ITreeCutState state = component.GetState <ITreeCutState>(); if (state.State == 0) { state.State = 1; } state.Damage = 16; } else { DestroyTree destroyTree = DestroyTree.Create(GlobalTargets.OnlyServer); destroyTree.Tree = component; destroyTree.Send(); } } } } else { this.Exploded = true; if (this.SpawnedCutTree) { this.DoFallTreeExplosion(); } else { this.CutDownExplosion(); } } } }
public override void OnEvent(DestroyTree evnt) { BoltEntity tree = evnt.Tree; if (tree && tree.isAttached) { if (tree.canFreeze) { tree.Freeze(false); } ITreeCutState state = tree.GetState <ITreeCutState>(); if (state.State == 0) { state.State = 1; } state.Damage = 16; } }