Example #1
0
 private void OnStartDriving(Spacecraft craft)
 {
     if (_arrivals.Count > 0 && craft == _arrivals[0].Craft)
     {
         _arrivals[0].QueueNextNPCMove = true;
     }
 }
        void GetRocketComponents()
        {
            List <GameObject> attachedNetwork = AttachableBuilding.GetAttachedNetwork(this.GetComponent <AttachableBuilding>());

            foreach (GameObject gameObject in attachedNetwork)
            {
                CommandModule component = gameObject.GetComponent <CommandModule>();
                if ((UnityEngine.Object)component != (UnityEngine.Object)null)
                {
                    relatedCM = component;
                }
            }

            if (relatedCM == null)
            {
                return;
            }

            LaunchConditionManager conditionManager = relatedCM.gameObject.GetComponent <LaunchConditionManager>();

            if (conditionManager == null)
            {
                return;
            }
            relatedSpacecraft = SpacecraftManager.instance.GetSpacecraftFromLaunchConditionManager(conditionManager);
        }
Example #3
0
    public static void InputHandler(Spacecraft spacecraft)
    {
        if (Console.KeyAvailable)
        {
            ConsoleKeyInfo userInput = Console.ReadKey();

            while (Console.KeyAvailable)
            {
                Console.ReadKey();
            }

            if (userInput.Key == ConsoleKey.DownArrow)
            {
                spacecraft.Move(1);
            }
            else if (userInput.Key == ConsoleKey.UpArrow)
            {
                spacecraft.Move(-1);
            }
            else if (userInput.Key == ConsoleKey.Spacebar)
            {
                if (bulletCount > 0)
                {
                    Bullet bullet = new Bullet(new Vector2(spacecraft.Position.X + 7, spacecraft.Position.Y + 1));
                    spacecraft.Clip.Add(bullet);
                    bulletCount--;
                }
            }
        }
    }
            public void ScanSky()
            {
                float     detectTime = this.GetDetectTime();
                KPrefabID component  = this.GetComponent <KPrefabID>();

                if ((UnityEngine.Object) this.targetCraft.Get() == (UnityEngine.Object)null)
                {
                    if ((double)SaveGame.Instance.GetComponent <SeasonManager>().TimeUntilNextBombardment() <= (double)detectTime)
                    {
                        component.AddTag(GameTags.Detecting);
                    }
                    else
                    {
                        component.RemoveTag(GameTags.Detecting);
                    }
                }
                else
                {
                    Spacecraft conditionManager = SpacecraftManager.instance.GetSpacecraftFromLaunchConditionManager(this.targetCraft.Get());
                    if (conditionManager.state == Spacecraft.MissionState.Destroyed)
                    {
                        this.targetCraft.Set((LaunchConditionManager)null);
                        component.RemoveTag(GameTags.Detecting);
                    }
                    else if (conditionManager.state == Spacecraft.MissionState.Launching || conditionManager.state == Spacecraft.MissionState.WaitingToLand || conditionManager.state == Spacecraft.MissionState.Landing || conditionManager.state == Spacecraft.MissionState.Underway && (double)conditionManager.GetTimeLeft() <= (double)detectTime)
                    {
                        component.AddTag(GameTags.Detecting);
                    }
                    else
                    {
                        component.RemoveTag(GameTags.Detecting);
                    }
                }
            }
Example #5
0
        /*
         * DATA SOURCE
         */
        private JavaList <Spacecraft> GetSpacecrafts()
        {
            spacecrafts = new JavaList <Spacecraft>();

            Spacecraft s;


            s = new Spacecraft("Luxuries bed Price:30k", Resource.Drawable.enterprise);
            spacecrafts.Add(s);

            s = new Spacecraft("Couple get-away Price:12k", Resource.Drawable.hubble);
            spacecrafts.Add(s);

            s = new Spacecraft("weekend vybz Price:20k", Resource.Drawable.kepler);
            spacecrafts.Add(s);

            s = new Spacecraft("College students Price:12k", Resource.Drawable.spitzer);
            spacecrafts.Add(s);

            s = new Spacecraft("Affordable rooms Price:15k", Resource.Drawable.rosetta);
            spacecrafts.Add(s);

            s = new Spacecraft("Opportunity formula Price:20k", Resource.Drawable.voyager);
            spacecrafts.Add(s);



            return(spacecrafts);
        }
Example #6
0
    public void RemoveSpacecraft(Spacecraft craft, bool arrival)
    {
        UISpacecraft[] array = arrival ? _arrivals : _departures;
        int            count = array.Length;

        for (int i = 0; i < count; ++i)
        {
            if (array[i].Craft == craft)
            {
                // Reverse animation
                bool reversed = false;
                int  numAnims = _anims.Count;
                for (int animIndex = 0; animIndex < numAnims; ++animIndex)
                {
                    if (_anims[animIndex].Craft == craft)
                    {
                        _anims[animIndex].AnimPercentage = 1.0f - _anims[animIndex].AnimPercentage;
                        _anims[animIndex].Appearing      = false;
                        reversed = true;
                        break;
                    }
                }
                if (!reversed)
                {
                    // No existing anim playing so make new one
                    _anims.Add(new SpacecraftUIAnim()
                    {
                        UI = array[i], Craft = craft, AnimPercentage = 0.0f, Arrival = arrival, Appearing = false
                    });
                    ApplyAnim(_anims[_anims.Count - 1]);
                }
                break;
            }
        }
    }
Example #7
0
    public void UpdateSpacecraft(Spacecraft craft, float timerPercentage, bool arrival)
    {
        UISpacecraft[] array = arrival ? _arrivals : _departures;
        bool           found = false;
        int            count = array.Length;

        for (int i = 0; i < count; ++i)
        {
            if (array[i].Craft == craft)
            {
                array[i].SetTimerPercentage(timerPercentage);
                found = true;
                break;
            }
        }
        if (!found)
        {
            List <QueuedSpacecraftUI> queue = arrival ? _queuedArrivals : _queuedDepartures;
            count = queue.Count;
            for (int i = 0; i < count; ++i)
            {
                if (queue[i].Craft == craft)
                {
                    queue[i].CraftTimerPercentage = timerPercentage;
                    found = true;
                    break;
                }
            }
        }
    }
        public void ScanSky()
        {
            float     detectTime = GetDetectTime();
            KPrefabID component  = GetComponent <KPrefabID>();

            if ((Object)targetCraft.Get() == (Object)null)
            {
                if (SaveGame.Instance.GetComponent <SeasonManager>().TimeUntilNextBombardment() <= detectTime)
                {
                    component.AddTag(GameTags.Detecting, false);
                }
                else
                {
                    component.RemoveTag(GameTags.Detecting);
                }
            }
            else
            {
                Spacecraft spacecraftFromLaunchConditionManager = SpacecraftManager.instance.GetSpacecraftFromLaunchConditionManager(targetCraft.Get());
                if (spacecraftFromLaunchConditionManager.state == Spacecraft.MissionState.Destroyed)
                {
                    targetCraft.Set(null);
                    component.RemoveTag(GameTags.Detecting);
                }
                else if (spacecraftFromLaunchConditionManager.state == Spacecraft.MissionState.Launching || spacecraftFromLaunchConditionManager.state == Spacecraft.MissionState.WaitingToLand || spacecraftFromLaunchConditionManager.state == Spacecraft.MissionState.Landing || (spacecraftFromLaunchConditionManager.state == Spacecraft.MissionState.Underway && spacecraftFromLaunchConditionManager.GetTimeLeft() <= detectTime))
                {
                    component.AddTag(GameTags.Detecting, false);
                }
                else
                {
                    component.RemoveTag(GameTags.Detecting);
                }
            }
        }
Example #9
0
    private void SpacecraftDestroyed(GameObject craft)
    {
        Spacecraft spacecraft = craft.GetComponent <Spacecraft>();

        if (spacecraft == null)
        {
            Debug.LogError("craft parameter has no Spacecraft component, name = " + craft.name);
        }

        if (spacecraft.SpacecraftType == SpacecraftType.Hero)
        {
            AddLives(-1);
            if (m_livesRemaining == 0)
            {
                SendMessage("GameOver", SendMessageOptions.DontRequireReceiver);
            }
            else
            {
                Invoke("SpawnHero", SpawnDelay);
            }
        }
        else
        {
            string type  = spacecraft.SpacecraftType.ToString();
            int    score = m_scoreCalculator.GetScore(type);
            AddScore(score);
        }
    }
Example #10
0
    protected override void OnSpawn()
    {
        base.OnSpawn();
        conditionManager = FindLaunchConditionManager();
        Spacecraft spacecraftFromLaunchConditionManager = SpacecraftManager.instance.GetSpacecraftFromLaunchConditionManager(conditionManager);

        if (spacecraftFromLaunchConditionManager != null)
        {
            SetParentRocketName(spacecraftFromLaunchConditionManager.GetRocketName());
        }
        RegisterWithConditionManager();
        KSelectable component = GetComponent <KSelectable>();

        if ((UnityEngine.Object)component != (UnityEngine.Object)null)
        {
            component.AddStatusItem(Db.Get().BuildingStatusItems.RocketName, this);
        }
        if ((UnityEngine.Object)conditionManager != (UnityEngine.Object)null && conditionManager.GetComponent <KPrefabID>().HasTag(GameTags.RocketNotOnGround))
        {
            OnLaunch(null);
        }
        Subscribe(-1056989049, OnLaunchDelegate);
        Subscribe(238242047, OnLandDelegate);
        Subscribe(1502190696, DEBUG_OnDestroyDelegate);
        FixSorting();
        AttachableBuilding component2 = GetComponent <AttachableBuilding>();

        component2.onAttachmentNetworkChanged = (Action <AttachableBuilding>)Delegate.Combine(component2.onAttachmentNetworkChanged, new Action <AttachableBuilding>(OnAttachmentNetworkChanged));
        if ((UnityEngine.Object)bgAnimFile != (UnityEngine.Object)null)
        {
            AddBGGantry();
        }
    }
        public Spacecraft CreateSpacecraft()
        {
            var spacecraft = new Spacecraft(_models["Spacecraft"], new Vector4(0, -1f, Z, 0), Vector4.Zero, Vector4.Zero, 0);

            spacecraft.SetScale(new Vector3(0.2f, 0.2f, 0.001f));
            return(spacecraft);
        }
Example #12
0
 private void OnStopDriving(Spacecraft craft)
 {
     transform.position  = craft.transform.position + _exitSpacecraftHeight * Vector3.up;
     _rb.velocity        = Vector3.zero;
     _rb.angularVelocity = Vector3.zero;
     gameObject.SetActive(true);
     _timeLastExitedCraft = Time.time;
 }
Example #13
0
 private void DEBUG_OnDestroy(object data)
 {
     if ((UnityEngine.Object)conditionManager != (UnityEngine.Object)null && !App.IsExiting && !KMonoBehaviour.isLoadingScene)
     {
         Spacecraft spacecraftFromLaunchConditionManager = SpacecraftManager.instance.GetSpacecraftFromLaunchConditionManager(conditionManager);
         conditionManager.DEBUG_TraceModuleDestruction(base.name, spacecraftFromLaunchConditionManager.state.ToString(), new StackTrace(true).ToString());
     }
 }
Example #14
0
 public static void StartDriving(Spacecraft craft)
 {
     _driving = craft;
     if (OnStartDriving != null)
     {
         OnStartDriving(craft);
     }
 }
Example #15
0
    private void FixedUpdate()
    {
        if (Globals.Game.State != GameState.Game)
        {
            return;
        }

        // Move
        MoveHorizontal();

        // Outline nearest spacecraft
        Spacecraft        nearestCraft   = null;
        float             nearestDistSqr = Mathf.Infinity;
        List <Spacecraft> drivables      = Globals.Game.AllDrivableCraft;
        int     numSpacecraft            = drivables.Count;
        Vector3 position = transform.position;

        for (int i = 0; i < numSpacecraft; ++i)
        {
            Vector3 craftPosition = drivables[i].transform.position;
            float   distSqr       = (craftPosition - position).sqrMagnitude;
            if (distSqr < nearestDistSqr)
            {
                nearestDistSqr = distSqr;
                nearestCraft   = drivables[i];
            }
        }
        if (nearestDistSqr > _enterSpacecraftDistance * _enterSpacecraftDistance)
        {
            nearestCraft = null;
        }
        for (int i = 0; i < numSpacecraft; ++i)
        {
            drivables[i].SetOutlineVisible(drivables[i] == nearestCraft);
        }

        // Attempt to enter nearest spacecraft
        float timeSinceExited = Time.time - _timeLastExitedCraft;

        if (!Globals.IsDriving && nearestCraft != null && timeSinceExited >= 0.1f && _wantEnterCraft)
        {
            nearestCraft.StartDriving();
        }

        // Grounded check
        float   heightAboveGround = transform.position.y;
        Vector3 basePosition      = transform.position;
        Ray     ray = new Ray(transform.position + _raycastHeightOffset * Vector3.up, Vector3.down);

        if (Physics.Raycast(ray, out RaycastHit hit, float.MaxValue, Globals.MaskEnvironment | Globals.MaskSpacecraft))
        {
            if (hit.distance < _raycastHeightOffset + _heightConsideredGrounded)
            {
                _timeLastGrounded = Time.time;
            }
            heightAboveGround = hit.distance - _raycastHeightOffset;
            basePosition      = hit.point;
        }
 public void Populate(Spacecraft craft)
 {
     _craft = craft;
     _imageCraft.texture = craft.CreatePreview();
     _imageOwner.sprite  = _ownerSprites[(int)craft.Owner];
     SetTimerPercentage(1.0f);
     SetAlphaMultiplier(1.0f);
     Resources.UnloadUnusedAssets();                 // Flush old preview texture
 }
Example #17
0
    private void MakeNewSpacecraft()
    {
        Quaternion spawnRot = Quaternion.LookRotation(Vector3.right, Vector3.up);
        Spacecraft craft    = Instantiate(_prefabSpacecraft, _arrivalStartPos, spawnRot, transform);

        _arrivalEndPos = _markerArrivals.transform.position - (0.5f * _markerArrivals.size.y - craft.HeightWhenDriving) * Vector3.up;
        craft.gameObject.SetActive(false);
        _pooledCraft.Add(craft);
    }
Example #18
0
 // Update is called once per frame
 void Update()
 {
     rigidbody.AddForce(Vector3.down * 1f, ForceMode.Impulse);
     if (transform.position.y < Formation.MIN_Y)
     {
         Spacecraft craft = GetComponent <Spacecraft>();
         craft.SpacecraftType = SpacecraftType.None;             // so I don't get points for it
         SendMessageUpwards("DirectHit", gameObject, SendMessageOptions.DontRequireReceiver);
     }
 }
Example #19
0
        /// <summary>
        ///    Constructs new ElectricitySubsystem for given Spacecraft.
        /// </summary>
        public ElectricitySubsystem(Spacecraft spacecraft)
        {
            Spacecraft       = spacecraft;
            EquipmentNetwork = new EquipmentNetwork();

            Spacecraft.EquipmentTrackingSubsystem.EquipmentConnected    += OnEquipmentConnected;
            Spacecraft.EquipmentTrackingSubsystem.EquipmentDisconnected += OnEquipmentDisconnected;

            EquipmentNetwork.PowerStateChanged += InvokePowerStateChanged;
        }
        private static void Postfix(Spacecraft __instance, float deltaTime)
        {
            bool has_reached_destination = (__instance.state == Spacecraft.MissionState.Underway || __instance.state == Spacecraft.MissionState.WaitingToLand || __instance.state == Spacecraft.MissionState.Landing) && __instance.GetTimeLeft() <= __instance.GetDuration() / 2;
            var  destination             = SpacecraftManager.instance.GetSpacecraftDestination(__instance.id);

            foreach (GameObject item in AttachableBuilding.GetAttachedNetwork(__instance.launchConditions.GetComponent <AttachableBuilding>()))
            {
                item.GetComponent <EndpointTransport>()?.SetReachedDestination(has_reached_destination, destination);
            }
        }
Example #21
0
    void OnCollisionEnter(Collision collision)
    {
        Spacecraft craft = collision.gameObject.GetComponent <Spacecraft>();

        if (craft)
        {
            craft.StopMoving();
            craft.Invoke("StartMoving", 4.0f);
        }
    }
Example #22
0
    public static void StopDriving()
    {
        Spacecraft exiting = _driving;

        _driving = null;
        if (OnStopDriving != null)
        {
            OnStopDriving(exiting);
        }
    }
Example #23
0
            /// <summary>
            /// Applied after CompleteMission runs.
            /// </summary>
            internal static void Postfix(Spacecraft __instance)
            {
                var instance = SpacecraftManager.instance;
                SpaceDestination destination;

                if ((destination = instance.GetSpacecraftDestination(__instance.id)) != null)
                {
                    AchievementStateComponent.OnVisit(destination.id);
                }
            }
Example #24
0
        /// <summary>
        ///    Returns test spacecraft in fresh test world. It is not player ship.
        /// </summary>
        /// <returns></returns>
        public static Spacecraft GetTestSpacecraft()
        {
            var worldContext = WorldHelper.GetTestWorld();

            var spacececraft = Spacecraft.DeserializeFrom(
                new FileStream($"{TestContext.CurrentContext.TestDirectory}/TestData/TestSpacecraft.json", FileMode.Open),
                worldContext);

            return(spacececraft);
        }
Example #25
0
    void Start()
    {
        spaceCraftScript = spaceCraftGO.GetComponent <Spacecraft>();
        spaceCraftRB     = spaceCraftGO.GetComponent <Rigidbody>();

        for (int i = projectileAmount; i > 0; i--)
        {
            GameObject newProjectile = Instantiate(projectileGO, projectileSpawner.position, projectileSpawner.rotation);
            newProjectile.SetActive(false);
        }
    }
Example #26
0
            /// <summary>
            /// Applied before PushReadyToLandNotification runs.
            /// </summary>
            internal static bool Prefix(SpacecraftManager __instance, Spacecraft spacecraft)
            {
                var notification = new Notification(STRINGS.BUILDING.STATUSITEMS.
                                                    SPACECRAFTREADYTOLAND.NOTIFICATION, NotificationType.Good, HashedString.
                                                    Invalid, (notificationList, data) => STRINGS.BUILDING.STATUSITEMS.
                                                    SPACECRAFTREADYTOLAND.NOTIFICATION_TOOLTIP + notificationList.
                                                    ReduceMessages(false), spacecraft.launchConditions.GetProperName(), true);

                __instance.gameObject.AddOrGet <Notifier>().Add(notification);
                return(false);
            }
Example #27
0
        public EquipmentTrackingSubsystem(Spacecraft spacecraft)
        {
            Spacecraft          = spacecraft;
            _installedEquipment = new List <Equipment>();

            Assert.IsTrue(Spacecraft.Hardpoints.Count == 0,
                          "Tried to initialize EquipmentTrackingSubsystem after spacecraft initialization." +
                          "Don't do that or add appropriate initialization code.");

            Spacecraft.Hardpoints.HardpointMounted   += OnHardpointMounted;
            Spacecraft.Hardpoints.HardpointUnmounted += OnHardpointUnmounted;
        }
Example #28
0
 public static void MoveBullets(Spacecraft spacecraft)
 {
     for (int i = 0; i < spacecraft.Clip.Count; i++)
     {
         if (spacecraft.Clip[i].Position.X > playField)
         {
             spacecraft.Clip[i].Delete();
             spacecraft.Clip.Remove(spacecraft.Clip[i]);
             i--;
         }
         spacecraft.Clip[i].MoveBullet();
     }
 }
Example #29
0
    public void ApplyDamage_100Damage_20percent_attenuation_total_damage_is_80()
    {
        //ARRANGE
        Spacecraft spacecraft = new Spacecraft();

        spacecraft.Health = 100;

        //ACT
        spacecraft.ApplyDamage(100, .2f);

        //ASSERT
        Assert.AreEqual(80, spacecraft.Health);
    }
Example #30
0
    void Start()
    {
        // For testing purpose
        weapon1      = "";
        weapon2      = "";
        item1        = "";
        item2        = "";
        currentSpeed = 0;
        init_Start_Values();
        init_card_Stack();

        spacecraft = space.GetComponent <Spacecraft>();
    }