public static void On_BuildingPartGradeChange(BuildingBlock bb, BaseEntity.RPCMessage msg) { BuildingGrade.Enum bgrade = (BuildingGrade.Enum)msg.read.Int32(); BasePlayer player = msg.player; BuildingPartGradeChangeEvent bpgce = new BuildingPartGradeChangeEvent(bb, bgrade, player); OnNext("On_BuildingPartGradeChange", bpgce); ConstructionGrade cg = (ConstructionGrade)bb.CallMethod("GetGrade", bpgce.Grade); if (bpgce.DoDestroy) { bpgce.Builder.Message(bpgce.DestroyReason); UnityEngine.Object.Destroy(bb); return; } if (cg == null) { return; } if (!bpgce.HasPrivilege) { return; } if (bpgce.PayForUpgrade && !(bool)bb.CallMethod("CanAffordUpgrade", bpgce.Grade, player)) { return; } if (bb.TimeSinceAttacked() < 8f) { return; } if (bpgce.PayForUpgrade) { bb.CallMethod("PayForUpgrade", cg, player); } bb.SetGrade(bpgce.Grade); bb.SetHealthToMax(); if (bpgce.Rotatable) { bb.CallMethod("StartBeingRotatable"); } bb.SendNetworkUpdate(); bb.CallMethod("UpdateSkin", false); Effect.server.Run("assets/bundled/prefabs/fx/build/promote_" + bpgce.Grade.ToString().ToLower() + ".prefab", bb, 0u, Vector3.zero, Vector3.zero); }
public void On_BuildingPartGradeChange(BuildingPartGradeChangeEvent bpgc) { SetHookWorking("On_BuildingPartGradeChange"); Broadcast(bpgc.Builder.Name + " changed grade of: " + bpgc.BuildingPart.Name + " to: " + bpgc.Grade + " (#" + bpgc.GradeInt + ")"); }