Ejemplo n.º 1
0
        public static void StartCombat(GameObjects options, string obj)
        {

            foreach (Mobs mob in options.Mobs)
            {
                if (obj.Contains(mob.Name.ToLower()))
                {
                    Mobs cloneMob = mob;

                    options = FightTarget(options, options.Player, mob);


                    if (mob.HP <= 0)
                    {
                        mob.HP = cloneMob.HP;
                        mob.RoomID = "R6";
                        mob.Cooldown = 3;
                    }
                }





            }
            if (options.Player.HP <= 0)
            {
                Console.WriteLine("Game Over");
                Console.ReadLine();
                Console.WriteLine("\n\n\n\n\n\n\n\n\n\n");
                GameOptions.Startup();
            }

        }
Ejemplo n.º 2
0
        Sprite CreateSquashSprite(Mobs id)
        {
            Point size;

            Point[] animation;
            string  spritesheet;
            bool    themeOffset = true;

            switch (id)
            {
            case Mobs.goomba:
                size        = new Point(16);
                animation   = new[] { new Point(32, 16) };
                spritesheet = "Sprites/Enimies2";
                break;

            default:
                return(NullSprite.Instance);
            }
            if (themeOffset)
            {
                animation = animation.Select(p => p + offsets[Theme]).ToArray();
            }
            return(new Sprite(Content.Load <Texture2D>(spritesheet), size, animation));
        }
Ejemplo n.º 3
0
        public string[] View()
        {
            StringBuilder stringBuilder = new StringBuilder();
            List <string> view          = new List <string>();

            view.Add(Name);
            view.Add("");
            view.Add(Description);
            view.Add("");
            if (Exits.Any())
            {
                stringBuilder.Append("Exits: " + Function.GetNames(Exits.ToArray()));
                view.Add(stringBuilder.ToString());
                stringBuilder.Clear();
            }
            if (Mobs.Any())
            {
                stringBuilder.Append("Mobs: " + Function.GetNames(Mobs.ToArray()));
                view.Add(stringBuilder.ToString());
                stringBuilder.Clear();
            }
            if (Players.Any())
            {
                stringBuilder.Append("Players: " + Function.GetNames(Players.ToArray()));
                view.Add(stringBuilder.ToString());
                stringBuilder.Clear();
            }
            if (Items.Any())
            {
                // items on floor; need to search for duplicates, pronouns, etc., and display them in friendly grammar form
                // You see (an) orange, 23 pumpkin seed(s), (a) hungry cat, Toetag('s) nose.
            }
            return(view.ToArray());
        }
Ejemplo n.º 4
0
        private void BuildRoom()
        {
            switch (RoomType)
            {
            case RoomType.Entry:
                break;

            case RoomType.Outry:
                break;

            case RoomType.Casual:
                //Permet de récupérer les classes filles de MobEntity
                IEnumerable <Type> ChildClasses = Assembly.GetAssembly(typeof(MobEntity)).GetTypes().Where(myType => myType.IsClass && !myType.IsAbstract && myType.IsSubclassOf(typeof(MobEntity)));
                object[]           paramArray   = new object[] { Game, SpriteBatch, Player };
                Random             r            = new Random();

                int mobCount = r.Next(2, 5);
                for (int i = 0; i < mobCount; i++)
                {
                    Mobs.Add((MobEntity)Activator.CreateInstance(ChildClasses.ElementAt(r.Next(0, ChildClasses.Count())), args: paramArray));
                }
                foreach (Entity ett in Mobs)
                {
                    ett.Position = new Vector2(r.Next(-tileWidth * 10 * 16, tileWidth * 10 * 16), r.Next(-tileWidth * 10 * 16, tileWidth * 10 * 16));
                }
                break;

            default:
                break;
            }
        }
Ejemplo n.º 5
0
        protected override void OnClockEnd()
        {
            base.OnClockEnd();

            if (WarpToNextField)
            {
                WarpMap(NextFieldID(), nInstanceID, (byte)NextPortalID(), 0);
            }
            else
            {
                if (!bLost)                 // show animation, reset timer for warpout
                {
                    BroadcastWZMapEffect(TIMEOUT_EFFECT);

                    tFieldTimerExpiration = DateTime.Now.AddSeconds(4);                     // invisible timer
                    Mobs.Clear();
                    bLost = true;
                }
                else                                // warp out
                {
                    GiveRewards();                  // rewards are also distributed in OnMobDie() in all cases except timer expiring
                    WarpMap(WarpOutField, 0, 0, 0); // TODO portal & FH IDs
                    Reset();
                }
            }
        }
Ejemplo n.º 6
0
        public static void InsertMobs(
            AsyncRPGDataContext db_context,
            RoomKey roomKey,
            List <Mob> mobs)
        {
            foreach (Mob mob in mobs)
            {
                Mobs dbMob = new Mobs
                {
                    MobTypeID = mob.MobType.ID,
                    GameID    = mob.RoomKey.game_id,
                    RoomX     = mob.RoomKey.x,
                    RoomY     = mob.RoomKey.y,
                    RoomZ     = mob.RoomKey.z,
                    X         = mob.Position.x,
                    Y         = mob.Position.y,
                    Z         = mob.Position.z,
                    Angle     = mob.Angle,
                    Health    = mob.Health,
                    Energy    = mob.Energy,
                    AiData    = Mob.SerializeAIData(mob.AIState)
                };

                db_context.Mobs.InsertOnSubmit(dbMob);
                db_context.SubmitChanges();

                mob.ID = dbMob.MobID;
            }
        }
Ejemplo n.º 7
0
        private void TxtFilter_TextChanged(object sender, EventArgs e)
        {
            var filteredMobs = Mobs.Where(x => x.InxName.ToLower().Contains(txtFilter.Text.ToLower())).ToList();

            lbMobs.DataSource    = filteredMobs;
            lbMobs.DisplayMember = "InxName";
        }
Ejemplo n.º 8
0
        public override void Update()
        {
            if (FrameCount == 0)
            {
                foreach (MobileEntity mob in Mobs)
                {
                    mob.Position = new Vector2(Constants.D, -30 * (Mobs.IndexOf(mob) + 1));
                    mob.Active   = true;
                }
            }

            foreach (MobileEntity mob in Mobs)
            {
                if (mob.Position.Y < Constants.G)
                {
                    mob.UpdatePosition("down");
                }
                else
                {
                    mob.UpdatePosition("right");
                }
                if (mob.Position.X > Constants.PLAYABLE_WIDTH)
                {
                    mob.Active = false;
                }
            }
            foreach (MoveScript formation in Bullets)
            {
                formation.Update();
            }
            FrameCount++;
        }
Ejemplo n.º 9
0
 public void WyrmPortal()
 {
     for (int i = 0; i < 7; i++)
     {
         Mobs.Add(new DragonPortal {
             Portal = this
         });
     }
     for (int i = 0; i < 3; i++)
     {
         Mobs.Add(new ShadowWyrmPortal {
             Portal = this
         });
     }
     for (int i = 0; i < 3; i++)
     {
         Mobs.Add(new AncientWyrm {
             Portal = this
         });
     }
     for (int i = 0; i < 2; i++)
     {
         Mobs.Add(new HarrowerTentaclesPortal {
             Portal = this
         });
     }
 }
Ejemplo n.º 10
0
        protected override void Init()
        {
            Mobs.Clear();
            Drops.Clear();
            bStarted = false;
            bChaos   = MapId % 2 == 1;
            int nTimeLeftSec;

            switch (MapId)
            {
            case 240060000:                     // normal
                nTimeLeftSec = 60 * 60;         // 1 hour
                break;

            case 240060001:                     // chaos
                nTimeLeftSec = 120 * 60;        // 2 hours
                break;

            default:
                nTimeLeftSec = (int)ParentInstance.CFieldMan
                               .GetField(MapId - 100, nInstanceID)
                               .tFieldTimerExpiration
                               .SecondsUntilEnd() + 2;
                if (nTimeLeftSec < 0)
                {
                    nTimeLeftSec = 0;
                }

                break;
            }
            CreateFieldClock(nTimeLeftSec);

            base.Init();             // doesnt currently do anything but might in the future
        }
Ejemplo n.º 11
0
        public static List <Mobs> LoadMobs(string user)
        {
            List <Mobs> mobsList = new List <Mobs>();


            StreamReader inputFile;

            inputFile = File.OpenText($"{Environment.CurrentDirectory}/save/{user}/{user}-Mobs.data");
            int i = 0;

            while (!inputFile.EndOfStream)
            {
                string line = inputFile.ReadLine();
                if (i != 0)
                {
                    string[] words = line.Split(',');

                    string id   = words[0];
                    string name = words[1];
                    string desc = words[2];

                    int hp = int.Parse(words[3]);

                    int attack = int.Parse(words[4]);

                    Mobs loadedMobs = Mobs.GetMobs(id, name, desc, hp, attack, words[5]);
                    mobsList.Add(loadedMobs);
                }

                i++;
            }
            return(mobsList);
        }
Ejemplo n.º 12
0
 private static Mobs[] MobsArray()
 {
     Mobs[] Enemy = new Mobs[3];
     Enemy[0] = new Enemy1();
     Enemy[1] = new Enemy2();
     Enemy[2] = new Enemy3();
     return(Enemy);
 }
Ejemplo n.º 13
0
 public void UpdateMobControl(Character who)
 {
     Mobs.ForEach(m => { if (m.Controller == who)
                         {
                             UpdateMobControl(m, false, null);
                         }
                  });
 }
Ejemplo n.º 14
0
        public override void Update()
        {
            if (_spawnTime.MillisUntilEnd() < 0 && !Mobs.Any())
            {
                SpawnStageBoss();
            }

            base.Update();
        }
Ejemplo n.º 15
0
        protected override void OnClockEnd()
        {
            Mobs.RemoveAll(false);

            FieldEffectPacket.BroadcastDojoEffect(this, FieldEffectTypes.DojoEffect.TimeOver);

            Reset();
            base.OnClockEnd();
        }
Ejemplo n.º 16
0
 public void AddMob(MobState mob)
 {
     Mobs.Add(mob);
     if (IdsUsed.Contains(mob.Id))
     {
         throw new OpenDiablo2Exception("Tried to insert an existing mob id!");
     }
     IdsUsed.Add(mob.Id);
 }
Ejemplo n.º 17
0
        private void Load(WZProperty mapNode)
        {
            Portals.Load(mapNode);
            Footholds.Load(mapNode);
            Npcs.Load(mapNode);

            Mobs.Load(mapNode);
            Mobs.DoMobLogic();
        }
Ejemplo n.º 18
0
        private void AddMob(byte[] rawdata)
        {
            var data = Functions.GetData(rawdata);
            Mob m    = Mob.MobClient((MobClass)data[0], new Vector2((float)data[2], (float)data[3]));

            m.Netid  = (int)data[1];
            m.Target = m.Position;
            Mobs.Add(m);
        }
Ejemplo n.º 19
0
 public ZigRight(List <MobileEntity> mobs, bool willFire) : base(mobs, willFire)
 {
     FrameCount = 0;
     foreach (MobileEntity mob in Mobs)
     {
         mob.Position = new Vector2((0 - 60 * Mobs.IndexOf(mob)), Constants.E);
         mob.Active   = true;
     }
 }
Ejemplo n.º 20
0
        private void Load(WZObject mapNode)//WzManager wzMan)
        {
            Portals.Load(mapNode);
            Footholds.Load(mapNode);
            Npcs.Load(mapNode);

            Mobs.Load(mapNode);
            Mobs.DoMobLogic();
        }
Ejemplo n.º 21
0
        public override void Update()
        {
            //string pattern = "Arrowhead";
            //string trajectory = "Arc";
            //int numBullets = 10;
            //string bulletType = "BulletTypeA";
            int initialXPosition = Constants.K - (30 * ((Mobs.Count / 2) - 1));

            if (FrameCount == 0)
            {
                foreach (MobileEntity mob in Mobs)
                {
                    mob.Position = new Vector2((initialXPosition + 30 * Mobs.IndexOf(mob)), -30 * (Mobs.IndexOf(mob) + 1));
                    mob.Active   = true;
                }
            }
            foreach (MobileEntity mob in Mobs)
            {
                //mobs enter from top of screen for 5 seconds
                if (FrameCount < 5 * Constants.FPS)
                {
                    if (mob.Position.Y < Constants.F)
                    {
                        mob.UpdatePosition("down");
                    }
                    else if (mob.Position.Y < Constants.F + mob.MoveSpeed)
                    {
                        //fire(pattern, mob, bulletType, mob.Color, numBullets, trajectory);
                        if (this.willFire && mob.Active)
                        {
                            //List<MobileEntity>bullets = formation.SetFormation("BulletTypeA", mob.Position);
                            Formation formation = new Arrowhead(bulletMaker, mob.Position);
                            //List<MobileEntity> bulletFormation = BulletMaker.CreateBulletList("BulletTypeA", new Arrowhead(mob.Position));
                            Bullets.Add(MoveScriptMaker.CreateMoveScript("Arc", formation.SetFormation("BulletTypeA"), false));
                        }
                        mob.UpdatePosition("down");
                    }
                }
                else //mobs begin exiting one by one
                {
                    if (FrameCount > (5 + Mobs.IndexOf(mob)) * Constants.FPS)
                    {
                        mob.UpdatePosition("up");
                    }
                    if (mob.Position.Y < 0)
                    {
                        mob.Active = false;
                    }
                }
            }
            foreach (MoveScript formation in Bullets)
            {
                formation.Update();
            }
            FrameCount++;
        }
Ejemplo n.º 22
0
 public Location(int id, string name, string desc, Item itemrequiredtoenter = null, 
                 Quest questavailableHere = null, Mobs monsterlivinghere= null)
 {
     ID = id;
     Name = name;
     Desc = desc;
     QuestAvailableHere = questavailableHere;
     Itemrequiredtoenter = itemrequiredtoenter;
     Monsterlivinghere = monsterlivinghere;
 }
Ejemplo n.º 23
0
 public void AddCharacter(Character character)
 {
     if (character is PlayerCharacter)
     {
         Players.Add(character as PlayerCharacter);
     }
     else if (character is NonPlayerCharacter)
     {
         Mobs.Add(character as NonPlayerCharacter);
     }
 }
Ejemplo n.º 24
0
 public void RemoveCharacter(Character character)
 {
     if (character is PlayerCharacter)
     {
         Players.Remove(character as PlayerCharacter);
     }
     else if (character is NonPlayerCharacter)
     {
         Mobs.Remove(character as NonPlayerCharacter);
     }
 }
Ejemplo n.º 25
0
        public int spawnMob(int spawnid, Life life)
        {
            int id  = _objectIDs.NextValue();
            Mob mob = new Mob(id, ID, life.ID, new Pos(life.X, life.Y), (short)life.Foothold, MobControlStatus.ControlNormal);

            mob.SetSpawnData(life);
            Mobs.Add(mob);
            MobPacket.SendMobSpawn(null, mob, 0, null, true, false);
            UpdateMobControl(mob, true, null);
            return(id);
        }
Ejemplo n.º 26
0
        private static void ReadMobs()
        {
            int Count = Reader.ReadInt32();

            for (int i = 0; i < Count; i++)
            {
                MobData data = new MobData();
                data.ID              = Reader.ReadInt32();
                data.Level           = Reader.ReadByte();
                data.Boss            = Reader.ReadBoolean();
                data.Undead          = Reader.ReadBoolean();
                data.BodyAttack      = Reader.ReadBoolean();
                data.SummonType      = Reader.ReadByte();
                data.EXP             = Reader.ReadInt32();
                data.MaxHP           = Reader.ReadInt32();
                data.MaxMP           = Reader.ReadInt32();
                data.HPRecoverAmount = Reader.ReadInt32();
                data.MPRecoverAmount = Reader.ReadInt32();
                data.Speed           = Reader.ReadInt16();

                byte summons = Reader.ReadByte();
                data.Revive = new List <int>();
                for (byte j = 0; j < summons; j++)
                {
                    data.Revive.Add(Reader.ReadInt32());
                }

                byte skills = Reader.ReadByte();
                data.Skills = new List <MobSkillData>();
                for (byte j = 0; j < skills; j++)
                {
                    MobSkillData msd = new MobSkillData();
                    msd.SkillID     = (byte)Reader.ReadInt16();
                    msd.Level       = Reader.ReadByte();
                    msd.EffectAfter = Reader.ReadInt16();
                    data.Skills.Add(msd);
                }

                byte attacks = Reader.ReadByte();
                data.Attacks = new Dictionary <byte, MobAttackData>();
                for (byte j = 0; j < attacks; j++)
                {
                    MobAttackData mad = new MobAttackData();
                    mad.ID         = j;            //Reader.ReadByte();
                    mad.MPConsume  = (short)Reader.ReadUInt16();
                    mad.MPBurn     = (short)Reader.ReadUInt16();
                    mad.SkillID    = (short)Reader.ReadUInt16();
                    mad.SkillLevel = Reader.ReadByte();
                    data.Attacks.Add(mad.ID, mad);
                }
                Mobs.Add(data.ID, data);
            }
        }
Ejemplo n.º 27
0
        private void SpawnZakum(int dwBodyID, int dwArmID)
        {
            Mobs.CreateMob(dwBodyID, null, SpawnPoint.X, SpawnPoint.Y, 70,
                           0xFC, 0, 0, MobType.ParentMob, null);


            for (var i = 0; i < 8; i++)
            {
                Mobs.CreateMob(dwArmID + i, null, SpawnPoint.X, SpawnPoint.Y, 70,
                               0, 0, 0, MobType.SubMob, null);
            }
        }
Ejemplo n.º 28
0
        public int spawnMobNoRespawn(int mobid, Pos position, short foothold)
        {
            int id  = _objectIDs.NextValue();
            Mob mob = new Mob(id, ID, mobid, position, foothold, MobControlStatus.ControlNormal, false);

            Mobs.Add(mob);

            MobPacket.SendMobSpawn(null, mob, 0, null, true, false);
            UpdateMobControl(mob, true, null);

            return(id);
        }
Ejemplo n.º 29
0
        public static Koopa CreateKoopa(Level level, Point position, Mobs mob)
        {
            switch (mob)
            {
            case Mobs.GreenFlyingKoopa:
            case Mobs.greenKoopa: return(new GreenKoopa(level, position));

            case Mobs.RedFlyingKoopa:
            case Mobs.redKoopa: return(new RedKoopa(level, position));
            }
            return(null);
        }
Ejemplo n.º 30
0
        private Task LoadMobs()
        {
            return(Task.Factory.StartNew(() =>
            {
                var mobs = MobInfo.Table.Rows.Cast <DataRow>()
                           .Where(x => Convert.ToInt32(x["IsNPC"]) == 0 &&
                                  Convert.ToInt32(x["Type"]) != 6 &&
                                  Convert.ToInt32(x["Type"]) != 12 &&
                                  Convert.ToInt32(x["Type"]) != 13);


                foreach (var row in mobs)
                {
                    var mob = new Mob();
                    mob.MobLevel = Convert.ToByte(row["Level"]);
                    mob.InxName = row["InxName"].ToString();
                    mob.DropGroups = new BindingList <MobDropGroupEntry>();
                    mob.MinLevel = 1;
                    mob.MaxLevel = 150;

                    var dropRow = ItemDropTable.DataSet.Tables[0].Rows.Cast <DataRow>().FirstOrDefault(x => x["MobId"].ToString() == mob.InxName);

                    if (dropRow != null)
                    {
                        mob.MinLevel = Convert.ToInt32(dropRow["MinLevel"]);
                        mob.MaxLevel = Convert.ToInt32(dropRow["MaxLevel"]);
                        mob.MinCen = Convert.ToInt32(dropRow["MinCen"]);
                        mob.MaxCen = Convert.ToInt32(dropRow["MaxCen"]);
                        mob.CenRate = Convert.ToDecimal(dropRow["CenRate"]) / 10000;

                        for (int i = 1; i < 46; i++)
                        {
                            var grp = dropRow["DrItem" + i].ToString();
                            var grpRate = Convert.ToDecimal(dropRow["DrItem" + i + "R"]) / 10000;
                            var UpGradeMin = Convert.ToInt32(dropRow[$"UpGradeMin{i:D2}"]);
                            var UpGradeMax = Convert.ToInt32(dropRow[$"UpGradeMax{i:D2}"]);

                            if (grp != "-")
                            {
                                var group = Groups.FirstOrDefault(x => x.Index == grp);

                                if (group != null)
                                {
                                    mob.DropGroups.Add(new MobDropGroupEntry(group, grpRate, UpGradeMin, UpGradeMax));
                                }
                            }
                        }
                    }

                    Mobs.Add(mob);
                }
            }));
        }
Ejemplo n.º 31
0
        public static Reward SpawnerReward(ChanceTag chance, Mobs mob)
        {
            var    tagList = new List <TagBase>();
            string mobName = char.ToUpper(mob.ToString()[0]) + mob.ToString().Substring(1);

            tagList.Add(new DisplayTag()
            {
                Item = "mob_spawner", Amount = 1, Name = $"&e{mobName} Spawner"
            });
            tagList.Add(new CommandTag($"spawner {mob} 1 %player%"));
            return(new Reward(chance, tagList.ToArray()));
        }
Ejemplo n.º 32
0
        public IPacket ReadPacket(IMinecraftDataReader reader)
        {
            EntityID = reader.ReadVarInt();
            Type = (Mobs) reader.ReadByte();
            Vector3 = Vector3.FromReaderIntFixedPoint(reader);
            Yaw = reader.ReadSByte();
            Pitch = reader.ReadSByte();
            HeadPitch = reader.ReadSByte();
            VelocityX = reader.ReadShort();
            VelocityY = reader.ReadShort();
            VelocityZ = reader.ReadShort();
            EntityMetadata = EntityMetadataList.FromReader(reader);

            return this;
        }
Ejemplo n.º 33
0
 private bool Check_monster(Mobs.Mob_Base monster,int i)
 {
     if ((monster.Grid_x == Level.ending_x && monster.Grid_y == Level.ending_y) || (monster.HP <= 0))
     {
         for (int j = 0; j < TowersList.Count; j++ )
         {
             if (TowersList[j].Tower_target == monster.Mob.Name)
                 TowersList[j].Reset_values();
         }
             Check_death(monster);
         monster.Mob.Enabled = false;
         Static.Functions.Swap(MonsterList, i, MonsterList.Count - 1);
         return true;
     }
     else
         return false;
 }
Ejemplo n.º 34
0
 private void Check_lives(Mobs.Mob_Base monster)
 {
     Player.Lives -= monster.Lives_value;
     MonsterCounter.Text = Player.Lives.ToString();
     if (Player.Lives <=0)
     {
         Console.WriteLine("No lives. Ending game");
         WaveServices.Platform.Exit();
     }
 }
Ejemplo n.º 35
0
 private void Check_death(Mobs.Mob_Base monster)
 {
     if (monster.HP > 0)
         Check_lives(monster);
     else
     {
         Player.Add_gold(monster.Monster_gold);
         MoneyCounter.Text = Player.Gold.ToString();
     }
 }
Ejemplo n.º 36
0
        public int Get_Damage(Mobs.Mob_Base Monster, Entity Monsters_set)
        {
            if (Tower_bullet.Bullet_access)
            {
            Tower_bullet.Bullet_speed_x = Tower_bullet.Bullet_speed_y = Tower_bullet.Bullet_speed;
            if (Tower_target == "" || Monster.Mob.Name == Tower_target)
            {
                int Pos_x = (int)Monster.Mob.FindComponent<Transform2D>().X;
                int Pos_y = (int)Monster.Mob.FindComponent<Transform2D>().Y;

                if ((Check_Range(Pos_x, Pos_y)) &&
                    (!Tower_bullet.Bullet.Enabled)
                    && (Tower_target == ""))
                    Get_values(Monster.Mob.Name);

                Get_directions(Pos_x, Pos_y, Monsters_set);

                if (Tower_target != "")
                {
                    if (((Get_hit(Pos_x, Pos_y,
                        (int)Tower_bullet.Bullet_bitmap.X,
                        (int)Tower_bullet.Bullet_bitmap.Y)) &&
                        Tower_bullet.Bullet.Enabled)
                        || (Monsters_set.FindChild(Tower_target).Enabled == false))
                    {
                        if (Monster.Mob.Name == Tower_target)
                            Monster.HP -= Tower_bullet.Bullet_damage;
                        Reset_values();
                        return Tower_bullet.Bullet_damage;
                    }
                    else
                        return 0;
                }

            }
            }
            return 0;
        }