Exemplo n.º 1
0
        public void OnUpdate()
        {
            Message  = Random.Range(1, 100).ToString();
            Sprite   = SpriteData[spriteIdx++ % SpriteData.Length];
            Texture  = TextureData[textureIdx++ % TextureData.Length];
            IsActive = !IsActive;
            Ability  = (Ability == HeartAbility.Sun) ? HeartAbility.Moon : HeartAbility.Sun;
            X        = Random.Range(-200f, 200f);
            Scale    = new Vector3(Random.Range(0.3f, 1f), Random.Range(0.3f, 1f), 0);
            Color    = new Color(Random.Range(0f, 1f), Random.Range(0f, 1f), Random.Range(0f, 1f));
            Progress = Random.Range(0f, 1f);
            Size     = new Vector2(Random.Range(64, 128), Random.Range(64, 128));

            Monsters.Clear();
            var count = Random.Range(0, 6);

            for (var i = 0; i < count; i++)
            {
                var monster = new Monster();
                monster.Name    = "Aruka" + Random.Range(1, 100);
                monster.Texture = MonsterTextureData;
                Monsters.Add(monster);
            }

            MasterMonster.Name    = "Amanuma" + Random.Range(1, 100);
            MasterMonster.Texture = MonsterTextureData;
        }
Exemplo n.º 2
0
 public void Clear()
 {
     Data = null;
     Players.Clear();
     Monsters.Clear();
     Npcs.Clear();
     Others.Clear();
 }
Exemplo n.º 3
0
 /// <summary>
 /// Completely clears the current level
 /// then constructs a new one.
 /// </summary>
 public static void NewLevel()
 {
     Grid.Clear();
     Rooms.Clear();
     Monsters.Clear();
     ClearLocals();
     Construct();
     LevelUpMonsters(LevelCount);
     LevelCount++;
 }
    public void Read(BinaryReader br)
    {
        Monsters.Clear();
        int monsterCount = br.ReadInt32();

        for (int j = 0; j < monsterCount; j++)
        {
            Monsters.Add(new Monster(DarkestDungeonManager.Data.Monsters[br.ReadString()]));
        }
        Cleared = br.ReadBoolean();
    }
Exemplo n.º 5
0
 private void HandleGameFightSynchronizeMessage(IAccount account, GameFightSynchronizeMessage message)
 {
     lock (CheckLock)
     {
         Fighters.Clear();
         Monsters.Clear();
         Companions.Clear();
         foreach (var fighter in message.Fighters)
         {
             AddFighter(fighter);
         }
     }
     Account.Character.Status = CharacterStatus.Fighting;
 }
Exemplo n.º 6
0
        void OnClickUpdate()
        {
            MonsterCount = M4uUtil.Random(0, 6);
            MonsterNames = new string[MonsterCount];
            Monsters.Clear();
            for (int i = 0; i < MonsterCount; i++)
            {
                MonsterNames[i] = "Goblin" + i;

                var monster = new MonsterData();
                monster.Name    = MonsterNames [i];
                monster.Texture = Resources.Load("Texture/monster") as Texture;
                Monsters.Add(monster);
            }
        }
Exemplo n.º 7
0
Arquivo: Map.cs Projeto: Teles1/Cookie
        private void HandleMapComplementaryInformationsDataMessage(IAccount account,
                                                                   MapComplementaryInformationsDataMessage message)
        {
            lock (CheckLock)
            {
                SubAreaId = message.SubAreaId;
                Data      = MapsManager.FromId(message.MapId);
                var subArea = ObjectDataManager.Instance.Get <SubArea>(SubAreaId);
                var mapName =
                    FastD2IReader.Instance.GetText(ObjectDataManager.Instance.Get <Area>(subArea.AreaId).NameId);
                var subAreaName = FastD2IReader.Instance.GetText(subArea.NameId);
                Position = $"[{X}, {Y}]";
                Zone     = $"{mapName} ({subAreaName})";
                Entities.Clear();
                Monsters.Clear();
                Npcs.Clear();
                Players.Clear();
                Resources.Clear();
                AddActors(message.Actors);
                StatedElements.Clear();
                //Populate the StateElements with new ones received.
                //StatesElements are the elements which our current bot in theory can harvest.
                foreach (var statedElement in message.StatedElements)
                {
                    if (!StatedElements.ContainsKey(statedElement.ElementId))
                    {
                        StatedElements.Add(statedElement.ElementId, new StatedElement(statedElement.ElementCellId, (uint)statedElement.ElementId, statedElement.ElementState));
                    }
                }
                InteractiveElements.Clear();
                Doors.Clear();
                //populate the interactiveElements which are essencially items that we can interact with. Their location is hardcoded into the map.layer
                foreach (var interactiveElement in message.InteractiveElements)
                {
                    if (!InteractiveElements.ContainsKey(interactiveElement.ElementId))
                    {
                        InteractiveElements.Add(interactiveElement.ElementId, new InteractiveElement((uint)interactiveElement.ElementId, interactiveElement.ElementTypeId, interactiveElement.EnabledSkills, interactiveElement.DisabledSkills));
                    }
                }
            }

            UpdateMapControl();

            OnMapChanged();
        }
Exemplo n.º 8
0
        /// <summary>
        /// Reloads the displayed affects.
        /// </summary>
        public void ReloadDisplayedAffects()
        {
            Monsters.Clear();
            _displayedAffectPriorities = new List <string>(Settings.Default.MonsterAffects);
            DisplayNumber        = Settings.Default.GroupWidgetDisplayNumber;
            DisplayedAffectCount = Settings.Default.MonsterDisplayAffectsCount;
            AffectsPanelWidth    = 23 * _displayedAffectCount;
            Width = AffectsPanelWidth + 22 + 140 + 60 + 20 + 20 + 5 + 5;
            if (!DisplayNumber)
            {
                Width -= 22;
            }

            DisplayedItemLimit = Settings.Default.IsMonsterLimitOn ? Settings.Default.MonsterLimit : 9999;
            if (DisplayedItemLimit < 1)
            {
                DisplayedItemLimit = 1;
            }
            MoreItemsAvailable = false;
            OnPropertyChanged("Width");
        }
Exemplo n.º 9
0
        public void Reset()
        {
            Point p = Map.ToWorldCoordinates(Path.Start);

            if (Monsters.Count != AllMonsters.Count)
            {
                Monsters.Clear();
                foreach (Monster m in AllMonsters)
                {
                    Monsters.Add(m.Clone());
                }
            }

            for (int i = 0; i < Monsters.Count; i++)
            {
                Monsters[i].Wave     = this;
                Monsters[i].Delay    = MonsterSpawnTimer * (i + 1);
                Monsters[i].Position = new Vector2(p.X, p.Y);
            }

            IsDone = false;
        }
Exemplo n.º 10
0
    private void Awake()
    {
        List <(GameObject, int)> MonsterData = new List <(GameObject, int)>();

        for (int i = 0; i < Monsters.Count; i++)
        {
            int amount = MonsterAmounts.Count <= i ? 1 : MonsterAmounts[i];
            MonsterData.Add((Monsters[i], amount));
        }

        Monsters.Clear();

        while (MonsterData.Count > 0)
        {
            int i = Random.Range(0, MonsterData.Count);
            Monsters.Add(MonsterData[i].Item1);
            MonsterData[i] = (MonsterData[i].Item1, MonsterData[i].Item2 - 1);
            if (MonsterData[i].Item2 <= 0)
            {
                MonsterData.RemoveAt(i);
            }
        }
    }
Exemplo n.º 11
0
        public static void LoadData()
        {
            Monsters.Clear();
            //Monsters = new ObservableCollection<Monster>();
            var data = File.ReadAllBytes(Files.BattleFile);

            for (var i = 0; i < 2344; i++)
            {
                var insideOffset = Files.TableOffsets[259] + (i * 208);
                var nameid       = BitConverter.ToInt16(data, insideOffset);
                var name         = "NAME NOT FOUND: " + nameid;
                if (nameid < Names.CharacterToName.Count && Names.CharacterToName[nameid] < Names.UnitNames.Count)
                {
                    name = Names.UnitNames[Names.CharacterToName[nameid]];
                }

                var equip1 = "[None]";
                var equip2 = "[None]";

                var equip1Id         = BitConverter.ToInt16(data, 108 + insideOffset);
                var equip1IdOriginal = equip1Id;
                if (equip1Id >= 0)
                {
                    var id = BitConverter.ToInt16(data, 108 + insideOffset);
                    if (id < Names.EquipmentToName.Count && Names.EquipmentToName[id] < Names.ItemNames.Count)
                    {
                        equip1 = $"[{equip1IdOriginal}] {Names.ItemNames[Names.EquipmentToName[BitConverter.ToInt16(data, 108 + insideOffset)]]}";
                    }
                    else
                    {
                        equip1 = "NAME NOT FOUND:" + id;
                    }
                }

                var equip2Id         = BitConverter.ToInt16(data, 114 + insideOffset);
                var equip2IdOriginal = equip2Id;
                if (equip2Id >= 0)
                {
                    var id = BitConverter.ToInt16(data, 114 + insideOffset);
                    if (id < Names.EquipmentToName.Count && Names.EquipmentToName[id] < Names.ItemNames.Count)
                    {
                        equip2 = $"[{equip1IdOriginal}] {Names.ItemNames[Names.EquipmentToName[BitConverter.ToInt16(data, 114 + insideOffset)]]}";
                    }
                    else
                    {
                        equip1 = "NAME NOT FOUND:" + id;
                    }
                }

                Monsters.Add(new Monster
                {
                    Id                = i,
                    Name              = name,
                    EquipmentMain     = equip1,
                    EquipmentOff      = equip2,
                    Equipment1Id      = equip1IdOriginal,
                    Equipment2Id      = equip2IdOriginal,
                    Rare              = BitConverter.ToBoolean(data, 4 + insideOffset),
                    Boss              = BitConverter.ToBoolean(data, 5 + insideOffset),
                    HPBase            = BitConverter.ToInt32(data, 12 + insideOffset),
                    APBase            = BitConverter.ToInt32(data, 16 + insideOffset),
                    APCharge          = data[20 + insideOffset],
                    StrBase           = data[21 + insideOffset],
                    IntBase           = data[22 + insideOffset],
                    SpdBase           = data[23 + insideOffset],
                    UniqueBase        = data[26 + insideOffset],
                    TensionBase       = data[27 + insideOffset],
                    SlashDefense      = data[92 + insideOffset],
                    BludgeonDefense   = data[93 + insideOffset],
                    MaulDefense       = data[94 + insideOffset],
                    PierceDefense     = data[95 + insideOffset],
                    FlameDefense      = data[96 + insideOffset],
                    ThunderDefense    = data[97 + insideOffset],
                    FrostDefense      = data[98 + insideOffset],
                    AcidDefense       = data[99 + insideOffset],
                    VenomDefense      = data[100 + insideOffset],
                    EquipMainLevel    = data[110 + insideOffset],
                    EquipOffhandLevel = data[116 + insideOffset],
                    Accessory1        = BitConverter.ToInt16(data, 118 + insideOffset),
                    Accessory2        = BitConverter.ToInt16(data, 118 + insideOffset),

                    GoldDrop = BitConverter.ToInt32(data, 140 + insideOffset),
                    //SurelyItem = BitConverter.ToInt16(data, 146 + insideOffset),
                    //Normal1Item = BitConverter.ToInt16(data, 154 + insideOffset),
                    //Normal2Item = BitConverter.ToInt16(data, 162 + insideOffset),
                    //RareItem = BitConverter.ToInt16(data, 170 + insideOffset),
                    //VeryRareItem = BitConverter.ToInt16(data, 178 + insideOffset),
                    //WeeklyItem = BitConverter.ToInt16(data, 186 + insideOffset),
                    //DailyItem = BitConverter.ToInt16(data, 198 + insideOffset),

                    SurelyChance   = data[148 + insideOffset],
                    Normal1Chance  = data[156 + insideOffset],
                    Normal2Chance  = data[164 + insideOffset],
                    RareChance     = data[172 + insideOffset],
                    VeryRareChance = data[180 + insideOffset],
                    WeeklyChance   = data[190 + insideOffset],
                    DailyChance    = data[202 + insideOffset],

                    SurelyItemName   = Names.DropItem(new Tuple <int, int>(BitConverter.ToInt16(data, 144 + insideOffset), BitConverter.ToInt16(data, 146 + insideOffset))),
                    Normal1ItemName  = Names.DropItem(new Tuple <int, int>(BitConverter.ToInt16(data, 152 + insideOffset), BitConverter.ToInt16(data, 154 + insideOffset))),
                    Normal2ItemName  = Names.DropItem(new Tuple <int, int>(BitConverter.ToInt16(data, 160 + insideOffset), BitConverter.ToInt16(data, 162 + insideOffset))),
                    RareItemName     = Names.DropItem(new Tuple <int, int>(BitConverter.ToInt16(data, 168 + insideOffset), BitConverter.ToInt16(data, 170 + insideOffset))),
                    VeryRareItemName = Names.DropItem(new Tuple <int, int>(BitConverter.ToInt16(data, 176 + insideOffset), BitConverter.ToInt16(data, 178 + insideOffset))),
                    WeeklyItemName   = Names.DropItem(new Tuple <int, int>(BitConverter.ToInt16(data, 184 + insideOffset), BitConverter.ToInt16(data, 186 + insideOffset))),
                    DailyItemName    = Names.DropItem(new Tuple <int, int>(BitConverter.ToInt16(data, 196 + insideOffset), BitConverter.ToInt16(data, 198 + insideOffset))),

                    Normal2Amount  = data[165 + insideOffset],
                    SurelyAmount   = data[149 + insideOffset],
                    Normal1Amount  = data[157 + insideOffset],
                    RareAmount     = data[173 + insideOffset],
                    VeryRareAmount = data[181 + insideOffset],
                    WeeklyAmount   = data[189 + insideOffset],
                    DailyAmount    = data[201 + insideOffset],


                    Offset   = insideOffset,
                    FileName = Files.BattleFile
                });
            }
        }
Exemplo n.º 12
0
        private void HandleMapComplementaryInformationsDataMessage(IAccount account,
                                                                   MapComplementaryInformationsDataMessage message)
        {
            lock (CheckLock)
            {
                SubAreaId = message.SubAreaId;
                Data      = MapsManager.FromId(message.MapId);

                var subArea = ObjectDataManager.Instance.Get <SubArea>(SubAreaId);
                var mapName =
                    FastD2IReader.Instance.GetText(ObjectDataManager.Instance.Get <Area>(subArea.AreaId).NameId);
                var subAreaName = FastD2IReader.Instance.GetText(subArea.NameId);
                Position = $"[{X}, {Y}]";
                Zone     = $"{mapName} ({subAreaName})";
                Entities.Clear();
                Monsters.Clear();
                Npcs.Clear();
                Players.Clear();
                AddActors(message.Actors);
                StatedElements.Clear();
                foreach (var statedElementDofus in message.StatedElements)
                {
                    if (!StatedElements.ContainsKey(statedElementDofus.ElementId) && statedElementDofus.OnCurrentMap)
                    {
                        StatedElements.Add(statedElementDofus.ElementId,
                                           new StatedElement(statedElementDofus.ElementCellId, (uint)statedElementDofus.ElementId,
                                                             statedElementDofus.ElementState));
                    }
                }
                InteractiveElements.Clear();
                Doors.Clear();
                foreach (var element in message.InteractiveElements)
                {
                    if (!element.OnCurrentMap)
                    {
                        continue;
                    }
                    InteractiveElements.Add(element.ElementId,
                                            new InteractiveElement((uint)element.ElementId, element.ElementTypeId,
                                                                   element.EnabledSkills.ToList(), element.DisabledSkills.ToList()));
                    var interactiveElement = element;
                    var listDoorSkillId    = new List <int>(new[] { 184, 183, 187, 198, 114 });
                    var listDoorTypeId     = new List <int>(new[] { -1, 128, 168, 16 });
                    if (!listDoorTypeId.Contains(interactiveElement.ElementTypeId) ||
                        interactiveElement.EnabledSkills.Count <= 0 ||
                        !listDoorSkillId.Contains((int)interactiveElement.EnabledSkills[0].SkillId))
                    {
                        continue;
                    }
                    foreach (var layer in ((API.Gamedata.D2p.Map)Data).Layers)
                    {
                        foreach (var cell in layer.Cells)
                        {
                            foreach (var layerElement in cell.Elements)
                            {
                                if (layerElement is GraphicalElement graphicalElement)
                                {
                                    if (graphicalElement.Identifier == interactiveElement.ElementId &&
                                        !Doors.ContainsKey(cell.CellId))
                                    {
                                        Doors.Add(cell.CellId,
                                                  new InteractiveElement((uint)element.ElementId, element.ElementTypeId,
                                                                         element.EnabledSkills.ToList(), element.DisabledSkills.ToList()));
                                    }
                                }
                            }
                        }
                    }
                }
            }

            UpdateMapControl();

            OnMapChanged();
        }
Exemplo n.º 13
0
 bool Init()
 {
     Monsters.Clear();
     return(true);
 }