Beispiel #1
0
        public static ScriptModules New(
            Random random,
            GameDatabase db,
            AssetDatabase assetdb,
            GameSession game,
            NamesPool namesPool,
            GameSetup gameSetup)
        {
            ScriptModules scriptModules = new ScriptModules();

            scriptModules.VonNeumann      = VonNeumann.InitializeEncounter(db, assetdb);
            scriptModules.Swarmers        = Swarmers.InitializeEncounter(db, assetdb);
            scriptModules.Gardeners       = Gardeners.InitializeEncounter(db, assetdb);
            scriptModules.AsteroidMonitor = AsteroidMonitor.InitializeEncounter(db, assetdb);
            scriptModules.MorrigiRelic    = MorrigiRelic.InitializeEncounter(db, assetdb);
            scriptModules.Slaver          = Slaver.InitializeEncounter(db, assetdb);
            scriptModules.Pirates         = Pirates.InitializeEncounter(db, assetdb);
            scriptModules.Spectre         = Spectre.InitializeEncounter(db, assetdb);
            scriptModules.GhostShip       = GhostShip.InitializeEncounter(db, assetdb);
            scriptModules.MeteorShower    = MeteorShower.InitializeEncounter(db, assetdb);
            scriptModules.SystemKiller    = SystemKiller.InitializeEncounter(db, assetdb);
            scriptModules.Locust          = Locust.InitializeEncounter(db, assetdb);
            scriptModules.Comet           = Comet.InitializeEncounter(db, assetdb);
            if (db.HasEndOfFleshExpansion())
            {
                scriptModules.NeutronStar = NeutronStar.InitializeEncounter(db, assetdb);
                scriptModules.SuperNova   = SuperNova.InitializeEncounter();
            }
            scriptModules.AddEasterEggs(random, db, assetdb, game, namesPool, gameSetup);
            return(scriptModules);
        }
Beispiel #2
0
    public override void _Process(float delta)
    {
        mSpawnCountdown -= delta;

        if (mSpawnCountdown <= 0f)
        {
            mSpawnCountdown = SpawnDelay + (float)rnd.NextDouble() * SpawnDelayRandom;

            Locust locust = (Locust)mLocustScene.Instance();
            locust.SetTranslation(GetTranslation() + Vector3.Up);
            GetNode("/root/World").AddChild(locust);
        }
    }
Beispiel #3
0
        public static ScriptModules Resume(GameDatabase db)
        {
            ScriptModules scriptModules = new ScriptModules();

            scriptModules.VonNeumann      = VonNeumann.ResumeEncounter(db);
            scriptModules.Swarmers        = Swarmers.ResumeEncounter(db);
            scriptModules.Gardeners       = Gardeners.ResumeEncounter(db);
            scriptModules.AsteroidMonitor = AsteroidMonitor.ResumeEncounter(db);
            scriptModules.MorrigiRelic    = MorrigiRelic.ResumeEncounter(db);
            scriptModules.Slaver          = Slaver.ResumeEncounter(db);
            scriptModules.Pirates         = Pirates.ResumeEncounter(db);
            scriptModules.Spectre         = Spectre.ResumeEncounter(db);
            scriptModules.GhostShip       = GhostShip.ResumeEncounter(db);
            scriptModules.MeteorShower    = MeteorShower.ResumeEncounter(db);
            scriptModules.SystemKiller    = SystemKiller.ResumeEncounter(db);
            scriptModules.Locust          = Locust.ResumeEncounter(db);
            scriptModules.Comet           = Comet.ResumeEncounter(db);
            if (db.HasEndOfFleshExpansion())
            {
                scriptModules.NeutronStar = NeutronStar.ResumeEncounter(db);
                scriptModules.SuperNova   = SuperNova.ResumeEncounter();
            }
            List <PlayerInfo> list = db.GetPlayerInfos().Where <PlayerInfo>((Func <PlayerInfo, bool>)(x =>
            {
                if (!x.isStandardPlayer)
                {
                    return(!x.includeInDiplomacy);
                }
                return(false);
            })).ToList <PlayerInfo>();

            foreach (int playerID in db.GetStandardPlayerIDs().ToList <int>())
            {
                foreach (PlayerInfo playerInfo in list)
                {
                    DiplomacyInfo diplomacyInfo = db.GetDiplomacyInfo(playerID, playerInfo.ID);
                    if (diplomacyInfo.State != DiplomacyState.WAR)
                    {
                        db.UpdateDiplomacyState(playerID, playerInfo.ID, DiplomacyState.WAR, diplomacyInfo.Relations, true);
                    }
                }
            }
            return(scriptModules);
        }
Beispiel #4
0
    void OnTriggerEnter2D(Collider2D col)
    {
        // If it hits an enemy...
        if (col.tag == "Enemy")
        {
            Destroy(col.gameObject);              // one hit kill till health script implemented

            OnExplode();

            Destroy(gameObject);
        }
        else if (col.tag == "Locust")
        {
            Destroy(gameObject);
            PlayerController ControllerScript = Player.GetComponent <PlayerController>();
            damage = ControllerScript.Damage;

            Locust locustScript = col.GetComponent <Locust> ();
            if (ControllerScript.AmmoType == "Holy" || ControllerScript.AmmoType == "Sin")
            {
                locustScript.health -= 1f;                 // normal damage
            }
            else if (ControllerScript.AmmoType == "Oil")
            {
                locustScript.health -= 2f;                 // insta kill
            }
            else if (ControllerScript.AmmoType == "Poison")
            {
                if (locustScript.health < 2f)
                {
                    locustScript.health += 1f;             // heal to max health
                }
            }
        }
        else if (col.tag == "Abaddon")
        {
            Destroy(gameObject);
            PlayerController ControllerScript = Player.GetComponent <PlayerController>();
            damage = ControllerScript.Damage;

            Abaddon abaddonScript = col.GetComponent <Abaddon> ();
            if (ControllerScript.AmmoType == "Oil" || ControllerScript.AmmoType == "Poison")
            {
                abaddonScript.health -= 1f;                 // normal damage
            }
            else if (ControllerScript.AmmoType == "Holy")
            {
                abaddonScript.health -= 2f;                 // Bonus Damage
            }
            else if (ControllerScript.AmmoType == "Sin")
            {
                if (abaddonScript.health < 10f)
                {
                    abaddonScript.health += 1f;                     // heal to max health
                }
            }
        }
        // Otherwise if the player manages to shoot himself
        else if (col.gameObject.tag != "Player")
        {
            OnExplode();
            Destroy(gameObject);
        }
    }