public BuildingPartGradeChangeEvent(BuildingBlock bb, BuildingGrade.Enum bgrade, BasePlayer player)
        {
            BuildingPart = new BuildingPart(bb);
            Builder = Server.GetPlayer(player);
            grade = bgrade;

            HasPrivilege = (bool)bb.CallMethod("CanChangeToGrade", bgrade, player);
        }
Esempio n. 2
0
 private bool UpdateConstructionHealth(BuildingGrade grade, float newHealth, bool healthChanged)
 {
     if (!healthChanged && grade.baseHealth == newHealth)
     {
         return(false);
     }
     grade.baseHealth = newHealth;
     return(true);
 }
 public PayMoneyForUpgradeBuildingReason(Building building,
                                         BuildingGrade sourceGrade,
                                         BuildingGrade targetGrade,
                                         long amount,
                                         WithAssetObject target) : base(amount, target)
 {
     Building    = building;
     SourceGrade = sourceGrade;
     TargetGrade = targetGrade;
 }
Esempio n. 4
0
 static int GradeToNum(BuildingGrade.Enum lvl)
 {
     if (lvl == BuildingGrade.Enum.Twigs)
         return 0;
     else if (lvl == BuildingGrade.Enum.Wood)
         return 1;
     else if (lvl == BuildingGrade.Enum.Stone)
         return 2;
     else if (lvl == BuildingGrade.Enum.Metal)
         return 3;
     return 4;
 }
Esempio n. 5
0
        private void UpdateConstructionHealth(BuildingGrade grade, float newHealth, bool healthChanged)
        {
            if (!healthChanged && grade.baseHealth == newHealth)
            {
                return;
            }
            grade.baseHealth = newHealth;
            var bb = UnityEngine.Object.FindObjectsOfType <BuildingBlock>().Where(b => b.currentGrade.gradeBase == grade);

            foreach (var buildingBlock in bb)
            {
                buildingBlock.SetHealthToMax();
            }
        }
Esempio n. 6
0
 private void OnStructureUpgrade(BuildingBlock block, BasePlayer player, BuildingGrade.Enum grade)
 {
     HookCalled("OnStructureUpgrade");
 }
Esempio n. 7
0
 public void OnBuildingBlockUpgrade(BasePlayer player, BuildingBlock buildingBlock, BuildingGrade.Enum grade)
 {
     var items = buildingBlock.blockDefinition.grades[(int) grade].costToBuild;
     int total = items.Sum(item => (int) item.amount);
     int experience = (int) Math.Ceiling(UpgradeBuildingTable[grade]*total);
     ExpGain(RPGInfo(player), experience, player);
 }
Esempio n. 8
0
 BuildingBlock SpawnStructure(GameObject prefab, Vector3 pos, Quaternion angles, BuildingGrade.Enum grade)
 {
     GameObject build = UnityEngine.Object.Instantiate(prefab);
     if (build == null) return null;
     BuildingBlock block = build.GetComponent<BuildingBlock>();
     if (block == null) return null;
     block.transform.position = pos;
     block.transform.rotation = angles;
     block.gameObject.SetActive(true);
     block.blockDefinition = PrefabAttribute.server.Find<Construction>(block.prefabID);
     block.Spawn(true);
     block.SetGrade(grade);
     block.health = block.MaxHealth();
     return block;
 }
Esempio n. 9
0
 private void UpdateConstructionHealth(BuildingGrade grade, float newHealth, bool healthChanged)
 {
     if (!healthChanged && grade.baseHealth == newHealth) return;
     grade.baseHealth = newHealth;
     var bb = UnityEngine.Object.FindObjectsOfType<BuildingBlock>().Where(b => b.currentGrade.gradeBase == grade);
     foreach (var buildingBlock in bb)
     {
         buildingBlock.SetHealthToMax();
     }
 }
Esempio n. 10
0
        //Oxide Hook
        void OnStructureUpgrade(BuildingBlock block, BasePlayer player, BuildingGrade.Enum grade)
        {
            if (block.grade == BuildingGrade.Enum.Twigs)
            {
                if (allowDemolish)
                {
                    block.SetFlag(BaseEntity.Flags.Reserved2, true);

                    if (this.amountOfMinutesAfterUpgrade > 0)
                    {
                        addBlockToLists(block.GetInstanceID(), DateTime.Now.ToString());
                    }
                }

                if (allowRotate && block.blockDefinition.canRotate)
                {

                    block.SetFlag(BaseEntity.Flags.Reserved1, true);

                    if (this.amountOfMinutesAfterUpgrade > 0)
                    {
                        addBlockToLists(block.GetInstanceID(), DateTime.Now.ToString());
                    }
                }
            }

            else if (block.name.Contains("build/door.hinged") && block.grade == BuildingGrade.Enum.Wood)
            {
                if (allowDemolishDoors)
                {
                    block.SetFlag(BaseEntity.Flags.Reserved2, true);

                    if (this.amountOfMinutesAfterUpgrade > 0)
                    {
                        addBlockToLists(block.GetInstanceID(), DateTime.Now.ToString());
                    }
                }

                if (allowRotateDoors)
                {
                    block.SetFlag(BaseEntity.Flags.Reserved1, true);

                    if (this.amountOfMinutesAfterUpgrade > 0)
                    {
                        addBlockToLists(block.GetInstanceID(), DateTime.Now.ToString());
                    }
                }
            }
        }
Esempio n. 11
0
 public BuildingUpgradeEvent(BuildingBlock buildingBlock, BuildingGrade.Enum buildingGrade, BasePlayer basePlayer)
 {
     BuildingPart = new BuildingPart(buildingBlock);
     Grade = buildingGrade;
     Player = Server.GetPlayer(basePlayer);
 }
Esempio n. 12
0
 private object IOnStructureUpgrade(BuildingBlock block, BaseEntity.RPCMessage msg, BuildingGrade.Enum grade)
 {
     return Interface.CallHook("OnStructureUpgrade", block, msg.player, grade);
 }
Esempio n. 13
0
 /////////////////////////////////////////////////////
 ///  SpawnStructure()
 ///  Function to spawn a block structure
 /////////////////////////////////////////////////////
 private static void SpawnStructure(string prefabname, Vector3 pos, Quaternion angles, BuildingGrade.Enum grade, float health)
 {
     GameObject prefab = GameManager.server.CreatePrefab(prefabname, pos, angles, true);
     if (prefab == null)
     {
         return;
     }
     BuildingBlock block = prefab.GetComponent<BuildingBlock>();
     if (block == null) return;
     block.transform.position = pos;
     block.transform.rotation = angles;
     block.gameObject.SetActive(true);
     block.blockDefinition = PrefabAttribute.server.Find<Construction>(block.prefabID);
     block.Spawn(true);
     block.SetGrade(grade);
     if (health <= 0f)
         block.health = block.MaxHealth();
     else
         block.health = health;
     block.SendNetworkUpdate(BasePlayer.NetworkQueue.Update);
 }
Esempio n. 14
0
 public PlayerUpgradeBuildingEventArgs(Building building, BuildingGrade sourceGrade, BuildingGrade targetGrade)
 {
     Building    = building;
     SourceGrade = sourceGrade;
     TargetGrade = targetGrade;
 }
Esempio n. 15
0
        //Oxide Hook
        void OnStructureUpgrade(BuildingBlock block, BasePlayer player, BuildingGrade.Enum grade)
        {
            if (block.grade == BuildingGrade.Enum.Twigs)
            {
                if (allowDemolish)
                {
                    block.SetFlag(BaseEntity.Flags.Reserved2, true);

                    if (this.amountOfMinutesAfterUpgrade > 0)
                    {
                        addBlockToList(block, DateTime.Now);
                    }
                }
            }

            else if (block.name.Contains("build/door.hinged") && block.grade == BuildingGrade.Enum.Wood)
            {
                if (allowDemolishDoors)
                {
                    block.SetFlag(BaseEntity.Flags.Reserved2, true);

                    if (this.amountOfMinutesAfterUpgrade > 0)
                    {
                        addBlockToList(block, DateTime.Now);
                    }
                }
            }
        }
Esempio n. 16
0
 public BuildingUpgradeEventArgs(BuildingGrade sourceGrade, BuildingGrade targetGrade)
 {
     SourceGrade = sourceGrade;
     TargetGrade = targetGrade;
 }
Esempio n. 17
0
 private object OnStructureUpgrade(BuildingBlock buildingBlock, BasePlayer player, BuildingGrade.Enum grade)
 {
     if (HasPlayerFlag(player, ZoneFlags.NoUpgrade)) return false;
     return null;
 }
Esempio n. 18
0
        BuildingBlock SpawnStructureBlock(GameObject prefab, Vector3 pos, Quaternion angles, BuildingGrade.Enum grade)
        {
            GameObject build = UnityEngine.GameObject.Instantiate(prefab);

            if (build == null)
            {
                return null;
            }

            BuildingBlock block = build.GetComponent<BuildingBlock>();

            if (block == null)
            {
                return null;
            }

            block.enableStability = false;
            block.transform.position = pos;
            block.transform.rotation = angles;
            block.gameObject.SetActive(true);

            eventBlocks.Add(block.gameObject.AddComponent<EventBlock>());

            block.blockDefinition = PrefabAttribute.server.Find<Construction>(block.prefabID);
            block.grade = grade;

            block.Spawn(true);

            block.health = 500;

            //block.SendNetworkUpdate(BasePlayer.NetworkQueue.Update);

            return block;
        }
Esempio n. 19
0
 private object OnStructureUpgrade(BuildingBlock block, BasePlayer player, BuildingGrade.Enum grade)
 {
     return Interface.CallDeprecatedHook("OnBuildingBlockUpgrade", block, player, grade);
 }
Esempio n. 20
0
 /////////////////////////////////////////////////////
 ///  SetGrade(BuildingBlock block, BuildingGrade.Enum level)
 ///  Change grade level of a block
 /////////////////////////////////////////////////////
 private static void SetGrade(BuildingBlock block, BuildingGrade.Enum level)
 {
     block.SetGrade(level);
     block.health = block.MaxHealth();
     block.SendNetworkUpdate(BasePlayer.NetworkQueue.Update);
 }
        void OnStructureUpgrade(BaseCombatEntity block, BasePlayer player, BuildingGrade.Enum grade)
        {
            if (PlayerHasFlag(player.userID, PlayerFlags.PLUGIN_DISABLED))
                return;

            if (playersInfo[player.userID].upgradeInfo != grade)
            {
                playersInfo[player.userID].upgradeInfo = grade;
                RenderMode(player, false);
                if (!PlayerHasFlag(player.userID, PlayerFlags.MESSAGES_DISABLED))
                    SendReply(player, pluginPrefix + "You are now in UPGRADE mode. [" + grade.ToString() + "]");
            }

            RefreshTimer(player);
        }