Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 public void On_BuildingPartGradeChange(BuildingPartGradeChangeEvent bpgc)
 {
     SetHookWorking("On_BuildingPartGradeChange");
     Broadcast(bpgc.Builder.Name + " changed grade of: " + bpgc.BuildingPart.Name + " to: " + bpgc.Grade + " (#" + bpgc.GradeInt + ")");
 }