Esempio n. 1
0
            public override void Create()
            {
                Name = "Island";

                var water1 = new Water();
                var water2 = new Water();
                var water3 = new Water();
                var earth  = new Earth();

                Elements = new Element[]
                {
                    water1, water2, water3, earth
                };

                foreach (var element in Elements)
                {
                    element.Create();
                }

                var kraken    = new Kraken();
                var leviathan = new Leviathan();
                var merfolk1  = new Merfolk();
                var merfolk2  = new Merfolk();
                var merfolk3  = new Merfolk();

                Creatures = new Creature[]
                {
                    kraken, leviathan, merfolk1, merfolk2, merfolk3
                };

                foreach (var creature in Creatures)
                {
                    creature.Create();
                }
            }
Esempio n. 2
0
        private void FinishEffect(Point3D p)
        {
            int count = Utility.RandomMinMax(5, 7);

            if (Hue != 0x8A0)
            {
                count += Utility.RandomMinMax(1, 2);
            }

            Map map = this.Map;

            Leviathan lev = new Leviathan();

            lev.MoveToWorld(p, map);

            for (int i = 0; map != null && i < count; ++i)
            {
                BaseCreature spawn;

                switch (Utility.Random(4))
                {
                default:
                case 0: spawn = new SeaSerpent(); break;

                case 1: spawn = new DeepSeaSerpent(); break;

                case 2: spawn = new WaterElemental(); break;

                case 3: spawn = new Kraken(); break;
                }

                int x = p.X, y = p.Y;

                for (int j = 0; j < 20; ++j)
                {
                    int tx = p.X - 5 + Utility.Random(11);
                    int ty = p.Y - 5 + Utility.Random(11);

                    Tile t = map.Tiles.GetLandTile(tx, ty);

                    if (t.Z == p.Z && ((t.ID >= 0xA8 && t.ID <= 0xAB) || (t.ID >= 0x136 && t.ID <= 0x137)) && !Spells.SpellHelper.CheckMulti(new Point3D(tx, ty, p.Z), map))
                    {
                        x = tx;
                        y = ty;
                        break;
                    }
                }

                spawn.MoveToWorld(new Point3D(x, y, p.Z), map);

                if (spawn is Kraken && 0.2 > Utility.RandomDouble())
                {
                    spawn.PackItem(new MessageInABottle(map == Map.Felucca ? Map.Felucca : Map.Trammel));
                }
            }

            Delete();
        }
Esempio n. 3
0
        public override void OnGameStart()
        {
            gameObject.SetLayerRecursively(Globals.LayerNumFluidTerrain);

            GameObject LeviathanGameObject = GameObject.Instantiate(LeviathanPrefab) as GameObject;

            Leviathan = LeviathanGameObject.GetComponent <WaterLeviathan> ();
            Leviathan.OnGameStart();

            if (!GameManager.Get.Ocean)
            {
                gameObject.SetActive(false);
            }
        }
Esempio n. 4
0
        protected override void FinishEffect(Point3D p, Map map, Mobile from)
        {
            BaseCreature toSpawn;

            if (0.125 > Utility.RandomDouble())
            {
                toSpawn = new Osiredon(from);
            }
            else
            {
                toSpawn = new Leviathan(from);
            }

            Spawn(p, map, toSpawn);

            base.FinishEffect(p, map, from);
        }
Esempio n. 5
0
            public override void Populate()
            {
                var kraken    = new Kraken();
                var leviathan = new Leviathan();
                var merfolk1  = new Merfolk();
                var merfolk2  = new Merfolk();
                var merfolk3  = new Merfolk();

                Creatures = new Creature[]
                {
                    kraken, leviathan, merfolk1, merfolk2, merfolk3
                };

                foreach (var creature in Creatures)
                {
                    creature.Speak();
                }
            }
        private static void Postfix(ref Leviathan __instance)
        {
            Leviathan levComp = __instance.GetComponent <Leviathan>();

            if (!levComp)
            {
                return;
            }

            string levText = levComp.name;
            string aName   = "";

            //Mod.Log.LogInfo(string.Format("[AMP - Leviathan] Found {0} at {1} {2} {3}", levText, levComp.transform.position.x, levComp.transform.position.y, levComp.transform.position.z));
            switch (levText)
            {
            case "Leviathan":
            case "Leviathan(Clone)":
                if (Mod.pinLeviathan.Value)
                {
                    aName = "Leviathan";
                }
                break;

            default:
                aName = "";
                break;
            }

            if (aName != "")
            {
                //__instance.gameObject.AddComponent<PinnedObject>().Init(aName, spawnComp.transform.position);

                if (!Mod.pinItems.ContainsKey(levComp.transform.position))
                {
                    Mod.pinItems.Add(levComp.transform.position, aName);
                }
            }
        }
Esempio n. 7
0
        protected virtual void FinishEffect(Point3D p, Map map, Mobile from)
        {
            from.RevealingAction();

            int     count   = Utility.RandomMinMax(1, 1);
            int     onBoat  = 0;
            string  monster = "";
            Point3D SpawnAt = p;

            switch (Utility.Random(7))
            {
            case 0: monster = "StormGiant"; SpawnAt = from.Location; onBoat = 1; break;

            case 1: monster = "Leviathan"; break;

            case 2: monster = "DemonOfTheSea"; SpawnAt = from.Location; onBoat = 1; break;

            case 3: monster = "DeepWaterElemental"; break;

            case 4: monster = "KelpElemental"; break;

            case 5: monster = "IcebergElemental"; SpawnAt = from.Location; onBoat = 1; break;

            case 6: monster = "DeepSeaDragon"; break;
            }

            for (int i = 0; map != null && i < count; ++i)
            {
                BaseCreature spawn = new WaterNaga();

                if (monster == "StormGiant")
                {
                    spawn = new StormGiant();
                }
                else if (monster == "Leviathan")
                {
                    spawn = new Leviathan();
                }
                else if (monster == "DemonOfTheSea")
                {
                    spawn = new DemonOfTheSea();
                }
                else if (monster == "DeepWaterElemental")
                {
                    spawn = new DeepWaterElemental();
                }
                else if (monster == "KelpElemental")
                {
                    spawn = new KelpElemental();
                }
                else if (monster == "IcebergElemental")
                {
                    spawn = new IcebergElemental();
                }
                else if (monster == "DeepSeaDragon")
                {
                    spawn = new DeepSeaDragon();
                }

                Spawn(SpawnAt, map, spawn, onBoat);

                spawn.WhisperHue = 999;                 // SO TASK MANAGER DELETES THEM EVENTUALLY
                spawn.Combatant  = from;
            }

            Delete();
        }