示例#1
0
        private void SpawnCrate(int item)
        {
            GameObject gameObject                = (GameObject)BraveResources.Load("EmergencyCrate", ".prefab");
            GameObject gameObject2               = UnityEngine.Object.Instantiate <GameObject>(gameObject);
            EmergencyCrateController component   = gameObject2.GetComponent <EmergencyCrateController>();
            SimplerCrateBehaviour    simpleCrate = component.TurnIntoSimplerCrate();

            simpleCrate.LootID = item;

            IntVector2 bestRewardLocation = LastOwner.CurrentRoom.GetBestRewardLocation(new IntVector2(1, 1), RoomHandler.RewardLocationStyle.CameraCenter, true);

            simpleCrate.Trigger(new Vector3(-5f, -5f, -5f), bestRewardLocation.ToVector3() + new Vector3(15f, 15f, 15f), LastOwner.CurrentRoom);
            LastOwner.CurrentRoom.ExtantEmergencyCrate = gameObject2;
        }
        public static SimplerCrateBehaviour TurnIntoSimplerCrate(this EmergencyCrateController self)
        {
            GameObject obj = self.gameObject;

            if (obj != null)
            {
                SimplerCrateBehaviour newCrateBehav = obj.AddComponent <SimplerCrateBehaviour>();
                newCrateBehav.driftAnimationName          = self.driftAnimationName;
                newCrateBehav.landedAnimationName         = self.landedAnimationName;
                newCrateBehav.chuteLandedAnimationName    = self.chuteLandedAnimationName;
                newCrateBehav.crateDisappearAnimationName = self.crateDisappearAnimationName;
                newCrateBehav.chuteAnimator       = self.chuteAnimator;
                newCrateBehav.landingTargetSprite = self.landingTargetSprite;

                UnityEngine.Object.Destroy(self);
                return(newCrateBehav);
            }
            else
            {
                return(null);
            }
        }