Exemplo n.º 1
0
        //初始化怪物卡牌
        public void InitMonsterCard(MonsterTemplate _monster)
        {
            Parent = selfTransform.FindChild("Parent");
            Image Boss_Image = Parent.FindChild("Boss_Image").GetComponent <Image>();

            CardNameText      = Parent.FindChild("Name_txt").GetComponent <Text>();
            _CardLevelText    = Parent.FindChild("Level_txt");
            CardImage         = Parent.FindChild("Icon_Img").GetComponent <Image>();
            CardStar          = _monster.getMonsterstar();
            maxStar           = _monster.getMonstermaxstar();
            CardLevel         = _monster.getMonsterlevel();
            CardName          = GameUtils.getString(_monster.getMonstername());
            CardNameText.text = CardName;//名称
            InterfaceControler.GetInst().AddLevelNum(CardLevel.ToString(), _CardLevelText, url);
            _Artresourcedata = (ArtresourceTemplate)DataTemplate.GetInstance().m_ArtresourceTable.getTableData(_monster.getArtresources());
            Sprite _img = UIResourceMgr.LoadSprite(common.defaultPath + _Artresourcedata.getHeadiconresource());

            CardImage.sprite = _img;//图片

            for (int i = 0; i < 5; i++)
            {
                Image temp = Parent.FindChild("Star_Image").GetChild(i).GetComponent <Image>();
                temp.enabled = i < maxStar;

                temp         = Parent.FindChild("Star_Image").GetChild(i + 5).GetComponent <Image>();
                temp.enabled = i < CardStar;
            }

            Boss_Image.enabled = _monster.getMonstertype() == 2 ? true : false;
        }
Exemplo n.º 2
0
    private string GetBossName(StageTemplate stageData)
    {
        MonstergroupTemplate _monsterGroup = null;
        MonsterTemplate      _bossTemp     = null;

        for (int i = stageData.m_monstergroup.Length - 1; i >= 0; i--)
        {
            _monsterGroup = null;
            _bossTemp     = null;
            if (stageData.m_monstergroup[i] <= 0)
            {
                continue;
            }
            _monsterGroup = DataTemplate.GetInstance().m_MonsterGroupTable.getTableData(stageData.m_monstergroup[i]) as MonstergroupTemplate;
            if (_monsterGroup == null || _monsterGroup.getGrouptype() != 2 || GameUtils.GetObjectClassById(_monsterGroup.getMonsterid()[0]) != EM_OBJECT_CLASS.EM_OBJECT_CLASS_MONSTER)
            {
                continue;
            }

            _bossTemp = DataTemplate.GetInstance().m_MonsterTable.getTableData(_monsterGroup.getMonsterid()[0]) as MonsterTemplate;
            if (_bossTemp != null)
            {
                break;
            }
        }
        if (_bossTemp == null)
        {
            return(null);
        }
        else
        {
            return(GameUtils.getString(_bossTemp.getMonstername()));
        }
    }
Exemplo n.º 3
0
        /// <summary>
        /// Spawn monster do hry dle jmena jeho typu
        /// </summary>
        public Monster SpawnMonster(string monsterTypeName, Vector3 position, bool isMinion, int level, int team = 0)
        {
            MonsterTemplate template = MonsterTemplateTable.Instance.GetType(monsterTypeName);

            if (template == null)
            {
                throw new NullReferenceException("cant find monstertemplate for " + monsterTypeName);
            }

            string name = template.GetFolderName();

            GameObject go = Resources.Load("Prefabs/entity/" + name + "/" + name) as GameObject;

            if (go == null)
            {
                throw new NullReferenceException("Prefabs/entity/" + name + "/" + name);
            }

            GameObject result = Object.Instantiate(go, position, Quaternion.identity) as GameObject;
            EnemyData  data   = result.GetComponent <EnemyData>();

            Monster m = RegisterNewCustomMonster(data, template, isMinion, level);

            if (team > 0)
            {
                m.Team = team;
            }

            return(m);
        }
Exemplo n.º 4
0
        /// <summary>
        /// In Game Usage : /cm test 1 3029 46 33 99 20 Dark Light "Common Monster"
        /// It represents the following structure: Name | Image | Map Id | X | Y | Spawn Count | Offense | Defense | Script Name
        /// </summary>
        private static void OnMonsterCreate(Argument[] args, object arg)
        {
            var client = (GameClient)arg;

            if (client == null)
            {
                return;
            }

            var template = new MonsterTemplate();
            {
                var name     = args.FromName("name").Replace("\"", "");
                var image    = args.FromName("image");
                var offsense = args.FromName("offense");
                var defense  = args.FromName("defense");
                var level    = args.FromName("level");
                var map      = args.FromName("map");
                var x        = args.FromName("x");
                var y        = args.FromName("y");
                var script   = args.FromName("Script").Replace("\"", "");
                var count    = args.FromName("count");

                if (Position.TryParse(x, y, out var position))
                {
                    template.Image = ushort.Parse(image) < 0x4000
                        ? (ushort)(ushort.Parse(image) + 0x4000)
                        : ushort.Parse(image);
                    template.DefinedX   = position.X;
                    template.DefinedY   = position.Y;
                    template.ScriptName = script;
                    //template.DefenseElement = Enum.Parse<ElementManager.Element>(defense);
                    //template.OffenseElement = Enum.Parse<ElementManager.Element>(offsense);
                    template.UpdateMapWide       = true;
                    template.EngagedWalkingSpeed = 1000;
                    template.PathQualifer        = PathQualifer.Wander;
                    template.AreaID        = int.Parse(map);
                    template.MovementSpeed = 1000;
                    template.AttackSpeed   = 1000;
                    template.CastSpeed     = 8000;
                    template.SpawnType     = SpawnQualifer.Defined;
                    template.SpawnRate     = 1;
                    template.BaseName      = name;
                    template.Name          = name;
                    template.MoodType      = MoodQualifer.Unpredicable;
                    template.FamilyKey     = "Minion";
                    template.Level         = int.Parse(level);
                    template.LootType      = LootQualifer.Gold | LootQualifer.Table;
                    template.Drops         = new List <string>
                    {
                        "random"
                    };
                    template.SpawnMax = int.Parse(count);
                    if (ServerContext.GlobalMapCache.ContainsKey(template.AreaID))
                    {
                        StorageManager.MonsterBucket.Save(template, true);
                        ServerContext.GlobalMonsterTemplateCache.Add(template);
                    }
                }
            }
        }
Exemplo n.º 5
0
        //索引怪物模型资源
        private void IndexMonsterModel()
        {
            if (!SceneManager.Inst.NextloadScene.ToString().Contains("Battle"))
            {
                return;
            }

            CampaignMonsterGroupData pData = ObjectSelf.GetInstance().GetMonsterGroupData();

            if (pData != null)
            {
                for (int i = 0; i < GlobalMembers.MAX_CAMPAIGN_MONSTER_GROUP; i++)
                {
                    for (int j = 0; j < GlobalMembers.MAX_MONSTER_GROUP_COUNT; ++j)
                    {
                        if (DataTemplate.GetInstance().m_MonsterTable.tableContainsKey(pData.IDs[i, j]))
                        {
                            int             nTableID = pData.IDs[i, j];
                            MonsterTemplate _rowData = (MonsterTemplate)DataTemplate.GetInstance().m_MonsterTable.getTableData(nTableID);
                            IndexModel(_rowData);
                            IndexSkillmodel(_rowData);
                        }
                    }
                }
            }
        }
Exemplo n.º 6
0
        public virtual void DoDie(Character killer = null, SkillId skillId = 0)
        {
            if (killer != null)
            {
                killer.OnKill(this, skillId);
            }

            int count = Skills.Skills.Count;

            for (int i = 0; i < count; i++)
            {
                Skills.Skills[i].NotifyCharacterDied();
            }

            if (ActiveEffects.Count > 0)
            {
                foreach (SkillEffect ef in ActiveEffects.ToArray())
                {
                    ef.OnCharDie();
                }
            }

            OnDead(killer, skillId);

            if (this is Monster)
            {
                MonsterTemplate mt = ((Monster)this).Template;
                mt.OnDie((Monster)this);
            }

            GetData().SetIsDead(true);
            WorldHolder.instance.activeMap.NotifyCharacterDied(this);
            DeleteMe();
        }
Exemplo n.º 7
0
        public override void Execute(TriggerBase trigger)
        {
            MonsterTemplate monsterTemplate = trigger.Get <MonsterTemplate>("monster");
            Character       target          = base.GetTarget(trigger);

            foreach (MonsterSpell current in monsterTemplate.Grades.FirstOrDefault <MonsterGrade>().SpellsTemplates)
            {
                CharacterSpell characterSpell = target.Spells.LearnSpell(current.SpellId);
                if (characterSpell != null)
                {
                    trigger.Reply("'{0}' learned the spell '{1}'", new object[]
                    {
                        trigger.Bold(target),
                        trigger.Bold(characterSpell.Template.Name)
                    });
                }
                else
                {
                    trigger.ReplyError("Spell {0} not learned. Unknow reason", new object[]
                    {
                        trigger.Bold(current.SpellId)
                    });
                }
            }
        }
Exemplo n.º 8
0
    void OnGUI()
    {
        if (ownerData == null || ownerData.showObjectName == false)
        {
            return;
        }

        if (center != null)
        {
            if (labelStyle == null)
            {
                labelStyle                  = new GUIStyle(GUI.skin.label);
                labelStyle.alignment        = TextAnchor.UpperCenter;
                labelStyle.normal.textColor = Color.black;
                labelStyle.fontSize         = 15;
            }

            Vector3 position = Camera.main.WorldToScreenPoint(transform.position + new Vector3(0, 1, 0));

            float x = position.x - 45;
            float y = Screen.height - position.y;

            string name = ownerData.GetOwner().Name;

            if (ownerData.GetOwner() is Monster)
            {
                MonsterTemplate template = ((Monster)ownerData.GetOwner()).Template;
                name = template.Name;
            }

            GUI.Label(new Rect(x, y, 90, 20), name, labelStyle);
        }
    }
Exemplo n.º 9
0
        public bool CreateFromTemplate(MonsterTemplate template, Area map, int count)
        {
            var objectsAdded = 0;

            try
            {
                for (int i = 0; i < count; i++)
                {
                    var newObj = Monster.Create(template, map);

                    if (newObj != null)
                    {
                        AddObject(newObj);
                        objectsAdded++;
                    }
                }
            }
            catch (Exception)
            {
                //ignore
                return(false);
            }

            return(objectsAdded > 0);
        }
Exemplo n.º 10
0
        public async Task <MonsterTemplate> CreateMonsterTemplateAsync(NaheulbookExecutionContext executionContext, MonsterTemplateRequest request)
        {
            await _authorizationUtil.EnsureAdminAccessAsync(executionContext);

            using (var uow = _unitOfWorkFactory.CreateUnitOfWork())
            {
                var subCategory = await uow.MonsterSubCategories.GetAsync(request.SubCategoryId);

                if (subCategory == null)
                {
                    throw new MonsterSubCategoryNotFoundException(request.SubCategoryId);
                }
                var itemTemplates = await uow.ItemTemplates.GetByIdsAsync(request.Inventory.Select(x => x.ItemTemplateId));

                var monsterTemplate = new MonsterTemplate
                {
                    Data        = JsonConvert.SerializeObject(request.Data),
                    Name        = request.Name,
                    SubCategory = subCategory,
                    Items       = request.Inventory.Where(i => !i.Id.HasValue || i.Id == 0).Select(i => new MonsterTemplateInventoryElement
                    {
                        Chance       = i.Chance,
                        ItemTemplate = itemTemplates.First(x => x.Id == i.ItemTemplateId),
                        MaxCount     = i.MaxCount,
                        MinCount     = i.MinCount
                    }).ToList()
                };

                uow.MonsterTemplates.Add(monsterTemplate);

                await uow.SaveChangesAsync();

                return(monsterTemplate);
            }
        }
Exemplo n.º 11
0
    /// <summary>
    /// 创建怪物
    /// </summary>
    private void CreateMonterObject()
    {
        MonsterTemplate     _monsterData = (MonsterTemplate)DataTemplate.GetInstance().m_MonsterTable.getTableData(GlobalMembers.SPELL_SHOW_MONTER_ID);
        ArtresourceTemplate _atrRes      = (ArtresourceTemplate)DataTemplate.GetInstance().m_ArtresourceTable.getTableData(_monsterData.getArtresources());
        GameObject          _assetRes    = AssetLoader.Inst.GetAssetRes(_atrRes.getArtresources());

        if (_assetRes != null)
        {
            GameObject _go = Instantiate(_assetRes, m_BossPos.position, m_BossPos.rotation) as GameObject;
            SceneObjectManager.GetInstance().SceneObjectAddMonster(_go, 1, 0);
            //_go.transform.rotation = Quaternion.Euler(_go.transform.rotation.x, 180, _go.transform.rotation.z);
            _go.transform.localScale = new Vector3(3, 3, 3);
            Animation _anim = _go.GetComponent <Animation>();
            if (_anim == null)
            {
                return;
            }
            if (_go.GetComponent <Animation>()["Idle1"] != null)
            {
                _go.GetComponent <Animation>().CrossFade("Idle1");
            }
            else if (_go.GetComponent <Animation>()["Nidle1"] != null)
            {
                _go.GetComponent <Animation>().CrossFade("Nidle1");
            }
            _go.GetComponent <Animation>().wrapMode = WrapMode.Loop;
        }
    }
        public bool CreateFromTemplate(MonsterTemplate template, Area map, int count)
        {
            var newObj = Monster.Create(template as MonsterTemplate, map);

            AddObject(newObj);

            return(false);
        }
        public void CreateFromTemplate(MonsterTemplate template, Area map)
        {
            var newObj = Monster.Create(template, map);

            if (newObj != null)
            {
                AddObject(newObj);
            }
        }
Exemplo n.º 14
0
        //动态加载极限试炼怪物资源 [6/17/2015 Zmy]
        public void DynamicLoadLimitMonsterRes(int nTableID)
        {
            MonsterTemplate _rowData = (MonsterTemplate)DataTemplate.GetInstance().m_MonsterTable.getTableData(nTableID);

            IndexModel(_rowData);
            IndexSkillmodel(_rowData);
            if (!IsInvoking("DownLoadHeroAnimationBundle"))
            {
                Invoke("DownLoadHeroAnimationBundle", 0.5f);
            }
        }
Exemplo n.º 15
0
        void LoadMonsterTemplates_Process_Handler(Task t)
        {
            foreach (object[] row in t.Query.Rows)
            {
                MonsterTemplate mt = MonsterTemplate.ReadFromDB(row);
                _server.AddMonsterTemplate(mt);
            }

            t.Type = Task.TaskType.LoadMonsterSpawners_Process;
            AddDBQuery("SELECT * FROM monster_spawners;", t);
        }
Exemplo n.º 16
0
        public MonsterGrade GetMonsterGrade(int monsterId, int grade)
        {
            MonsterTemplate template = this.GetTemplate(monsterId);

            if (template == null)
            {
                return(null);
            }

            return((template.Grades.Count <= grade - 1) ? null : template.Grades[grade - 1]);
        }
Exemplo n.º 17
0
 public void AddType(MonsterTemplate t)
 {
     try
     {
         types.Add(t.GetMonsterId(), t);
     }
     catch (Exception)
     {
         Debug.LogError("type " + t.GetMonsterId() + " already exists! ( " + t.GetType().Name + ")");
     }
 }
 public void InitializeBomb(int summonerid, short cellid)
 {
     this.Direction           = 3;
     this.CellId              = cellid;
     this.ContextualId        = Fight.PopNextNonPlayerId();
     this.FighterLook         = MonsterTemplate.RealLook.CloneContextActorLook();
     this.RealFighterLook     = FighterLook.CloneContextActorLook();
     this.FighterStats        = MonsterTemplate.GetFighterStats(Grade, true, summonerid);
     this.FighterInformations = new GameFightMonsterInformations(ContextualId, FighterLook,
                                                                 new EntityDispositionInformations(CellId, Direction),
                                                                 (sbyte)Team.TeamColor, 0, true, FighterStats.GetMinimalStats(), new ushort[0], MonsterTemplate.Id, Grade);
 }
Exemplo n.º 19
0
        private void IndexModel(MonsterTemplate monster)
        {
            ArtresourceTemplate _Artresourcedata = new ArtresourceTemplate();

            _Artresourcedata = (ArtresourceTemplate)DataTemplate.GetInstance().m_ArtresourceTable.getTableData(monster.getArtresources());
            PushNeedDownBundle(_Artresourcedata.getArtresources() + _strRes);
            string[] ActArtresourceData = _Artresourcedata.getActionresource();
            for (int i = 0; i < ActArtresourceData.Length; ++i)
            {
                PushNeedDownBundle(ActArtresourceData[i] + _strRes);
            }
        }
Exemplo n.º 20
0
    /// <summary>
    /// 使用物品ID初始化,参数2为物品数量。当ID为英雄、符文,或者数量不大于0时会隐藏数量面板
    /// </summary>
    /// <param name="itemID"></param>
    /// <param name="count"></param>
    public void InitByID(int itemID, int count = 0)
    {
        m_ItemID = itemID;
        m_Type   = GameUtils.GetObjectClassById(itemID);
        switch (m_Type)
        {
        case EM_OBJECT_CLASS.EM_OBJECT_CLASS_RUNE:
            ItemTemplate _itemTable = DataTemplate.GetInstance().m_ItemTable.getTableData(itemID) as ItemTemplate;
            if (_itemTable != null)
            {
                ItemTypeProcess(_itemTable);
                m_ItemImage.gameObject.SetActive(false);
                m_HeroImage.gameObject.SetActive(false);
                LoadStar(_itemTable.getRune_quality(), _itemTable.getRune_quality(), false);
            }
            m_ItemCountImage.gameObject.SetActive(false);
            break;

        case EM_OBJECT_CLASS.EM_OBJECT_CLASS_HERO:
            HeroTemplate _heroTable = DataTemplate.GetInstance().m_HeroTable.getTableData(itemID) as HeroTemplate;
            if (_heroTable != null)
            {
                m_HeroImage.sprite = DynamicItem.GetSprite(itemID);
                m_HeroImage.gameObject.SetActive(true);
                //m_HeroImage.SetNativeSize();
                m_ItemImage.gameObject.SetActive(false);
                LoadStar(_heroTable.getQuality(), _heroTable.getMaxQuality());
            }
            m_ItemCountImage.gameObject.SetActive(false);
            break;

        case EM_OBJECT_CLASS.EM_OBJECT_CLASS_MONSTER:
            MonsterTemplate _monsterTable = DataTemplate.GetInstance().m_MonsterTable.getTableData(itemID) as MonsterTemplate;
            if (_monsterTable != null)
            {
                m_HeroImage.sprite = DynamicItem.GetSprite(itemID);
                m_HeroImage.gameObject.SetActive(true);
                //m_HeroImage.SetNativeSize();
                m_ItemImage.gameObject.SetActive(false);
                m_StarPanel.SetActive(false);
            }
            break;

        default:
            m_ItemImage.sprite = DynamicItem.GetSprite(itemID);
            m_ItemImage.gameObject.SetActive(true);
            m_HeroImage.gameObject.SetActive(false);
            m_ItemCountImage.gameObject.SetActive(count > 0);
            m_ItemCountText.text = string.Format("X{0}", count);
            break;
        }
    }
Exemplo n.º 21
0
    /// <summary>Create new monster instance of given <c>MonsterTemplate</c>.</summary>
    /// <param name="p">Position</param>
    /// <param name="template">Template</param>
    /// <returns>Created monster referenceo or null if template is invalid or <c>null</c>.</returns>
    public Monster spawnMonster(Position p, MonsterTemplate template)
    {
        var m = spawn <Monster>(p);

        try {
            if (m != null)
            {
                m.Build(template);
            }
        } catch {
            Debug.LogError("Failed to instantiate monster");
        }

        return(m);
    }
Exemplo n.º 22
0
        private int IncreaseCreatureKilledCount(MonsterTemplate monster)
        {
            if (!m_monsterKilledEffects.TryGetValue(monster.Id, out var effect))
            {
                effect = new EffectDice(EffectsEnum.Effect_MonsterKilledCount, 1, (short)monster.Id, 0);
                m_monsterKilledEffects.Add(monster.Id, effect);
                Effects.Add(effect);
            }
            else
            {
                effect.Value++;
            }

            return(effect.Value);
        }
        public void SpawnOn(MonsterTemplate template, Area map)
        {
            var count = GetObjects <Monster>(i => i.Template.Name == template.Name).Length;

            if (count < template.SpawnMax)
            {
                if ((template.SpawnType & SpawnQualifer.Random) == SpawnQualifer.Random)
                {
                    CreateFromTemplate(template, map, count);
                }
                else if ((template.SpawnType & SpawnQualifer.Defined) == SpawnQualifer.Defined)
                {
                    CreateFromTemplate(template, map, count);
                }
            }
        }
Exemplo n.º 24
0
        public Task <bool> SpawnOn(MonsterTemplate template, Area map)
        {
            var tcs   = new TaskCompletionSource <bool>();
            var count = GetObjects <Monster>(i => i.Template.Name == template.Name && i.CurrentMapId == map.ID).Count();

            if (count < Math.Abs(template.SpawnMax))
            {
                tcs.SetResult(CreateFromTemplate(template, map, template.SpawnSize));
            }
            else
            {
                tcs.SetResult(false);
            }

            return(tcs.Task);
        }
Exemplo n.º 25
0
        private void OnEnemyOnDie(GameEvent ge)
        {
            CurrentMonsterDieCount++;
            for (int i = 0; i < CurrentAllMonsterdataList.Count; ++i)
            {
                if (CurrentAllMonsterdataList[i].MonsterPointdataList.Count <= 0)
                {
                    continue;
                }
                if (CurrentAllMonsterdataList[i].MonsterPointdataList[0].Entertype == MonsterEnterType.Bench && CurrentAllMonsterdataList[i].MonsterPointdataList[0].BenchCount == CurrentMonsterDieCount)
                {
                    int                 fightCount = ObjectSelf.GetInstance().IsLimitFight ? ObjectSelf.GetInstance().LimitFightMgr.m_RoundNum : CurrentFightCount;
                    int                 id         = SceneObjectManager.GetInstance().GetMosnterBundleRes(fightCount, i);
                    MonsterTemplate     pRow       = (MonsterTemplate)DataTemplate.GetInstance().m_MonsterTable.getTableData(id);
                    ArtresourceTemplate art        = (ArtresourceTemplate)DataTemplate.GetInstance().m_ArtresourceTable.getTableData(pRow.getArtresources());
                    string              _res       = art.getArtresources();
                    GameObject          _Monster   = AssetLoader.Inst.GetAssetRes(_res);
                    GameObject          obj        = Instantiate(_Monster, CurrentAllMonsterdataList[i].MyPos, CurrentAllMonsterdataList[i].MyAngle) as GameObject;
                    float               _zoom      = art.getArtresources_zoom() * pRow.getMonsterEnlarge();
                    obj.transform.localScale = new UnityEngine.Vector3(_zoom, _zoom, _zoom);
                    MonsterObjList.Add(obj);
                    SetMonsterBirthState(obj, CurrentAllMonsterdataList[i], false, i);
                }
            }

            //X_GUID monsterGuid = ge.data as X_GUID;
            //if (monsterGuid != null)
            //{
            //    //判断前排英雄是否消失;
            //    //TODO::这里应该考虑到是否有支援怪物(和策划确认了不要支援怪物了2015/10/30/11.20);
            //    //List<ObjectMonster> monsters = SceneObjectManager.GetInstance().GetSceneMonsterList();
            //    //if (monsters != null && monsters.Count > 0)
            //    //{
            //    //    //写死的阵型,前2后3;
            //    //    for (int i = 0; i < 2; i++)
            //    //    {

            //    //    }
            //    //}

            //    if (IsFrontRowDie())
            //    {
            //        SceneObjectManager.GetInstance().ObjectHeroMoveTarget();
            //    }
            //}
        }
Exemplo n.º 26
0
    /// <summary>Set template, initialize proerties and model from template data.</summary>
    public void Build(MonsterTemplate temp)
    {
        if (temp == null)
        {
            Debug.LogError("Given null MonsterTemplate");
        }
        else
        {
            template      = temp;
            currentHealth = template.health;

            var mf = GetComponent <MeshFilter>();
            mf.sharedMesh = temp.mesh;

            var mr = GetComponent <MeshRenderer>();
            mr.sharedMaterial = temp.material;
        }
    }
Exemplo n.º 27
0
        private void IndexSkillmodel(MonsterTemplate monster)
        {
            SkillTemplate normalskill = (SkillTemplate)DataTemplate.GetInstance().m_SkillTable.getTableData(monster.getNormalattack());

            PushNeedDownBundle(normalskill.getBallIsticEffID() + _strRes);
            PushNeedDownBundle(normalskill.getUnderAttackEffID() + _strRes);
            SkillTemplate[] m_skill = new SkillTemplate[monster.getMonsterskill().Length];
            for (int i = 0; i < monster.getMonsterskill().Length; ++i)
            {
                if (monster.getMonsterskill()[i] == -1)
                {
                    return;
                }
                m_skill[i] = (SkillTemplate)DataTemplate.GetInstance().m_SkillTable.getTableData(monster.getMonsterskill()[i]);
                PushNeedDownBundle(m_skill[i].getBallIsticEffID() + _strRes);
                PushNeedDownBundle(m_skill[i].getUnderAttackEffID() + _strRes);
            }
        }
Exemplo n.º 28
0
        /// <summary>
        /// Spawne bosse do hry dle jmena jeho typu
        /// </summary>
        public Boss SpawnBoss(string monsterTypeName, Vector3 position, int level)
        {
            MonsterTemplate template = MonsterTemplateTable.Instance.GetType(monsterTypeName);

            if (template == null)
            {
                throw new NullReferenceException("cant find monstertemplate for " + monsterTypeName);
            }

            string name;

            if (template.GetMonsterId() == MonsterId.CustomMonster)
            {
                name = ((CustomMonsterTemplate)template).GetOldTemplateFolderId();
            }
            else
            {
                name = template.GetMonsterId().ToString();
            }

            GameObject go = Resources.Load("Prefabs/entity/" + name + "/" + name) as GameObject;

            if (go == null)
            {
                throw new NullReferenceException("Prefabs/entity/" + name + "/" + name);
            }

            GameObject result = Object.Instantiate(go, position, Quaternion.identity) as GameObject;
            EnemyData  data   = result.GetComponent <EnemyData>();

            //Monster m = RegisterNewMonster(data, id, false, level);
            Monster m = RegisterNewCustomMonster(data, template, false, level);

            if (m is Boss)
            {
                return((Boss)m);
            }
            else
            {
                Debug.LogError("tried to spawn boss - but it was a monster ! fix it in data");
                throw new NullReferenceException();
            }
        }
Exemplo n.º 29
0
    public void test()
    {
        MonsterTemplate m = new MonsterTemplate();

        m.baseHP = 5;
        m.name   = "Jane";
        m.maxAtk = 9;
        m.minAtk = 2;
        m.id     = 33;
        m.level  = 2;

        Newtonsoft.Json.Linq.JsonLoadSettings setting = new Newtonsoft.Json.Linq.JsonLoadSettings();

        Debug.Log("---");
        string jsonStr = JsonConvert.SerializeObject(m);

        Debug.Log(jsonStr);

        //Newtonsoft.Json.Linq.JObject obj = JsonConvert.
    }
Exemplo n.º 30
0
        public UI_Blood CreateBloodBar(ObjectMonster monster)
        {
            Transform tans = monster.GetAnimation().EventControl.Pre_Head_T_EffectPoint;

            GameObject      barObj   = null;
            MonsterTemplate template = (MonsterTemplate)DataTemplate.GetInstance().m_MonsterTable.getTableData(monster.GetTableID());

            if (template.getMonstertype() == 1)
            {
                barObj = Instantiate(UI_FightControler.Inst.monsterBloodPre) as GameObject;
            }

            else
            {
                barObj = Instantiate(UI_FightControler.Inst.bossBloodBar) as GameObject;
            }
            barObj.transform.SetParent(transform, false);

            UI_Blood mBlood = barObj.AddComponent <UI_Blood>();

            mBlood.SetPosition(tans.position);
            barObj.transform.localScale = new Vector3(1, 1, 1);
            bloodInfo.Add(mBlood);
            mBlood.isHero = false;
            if (ObjectSelf.GetInstance().LimitFightMgr.m_bStartEnter)
            {
                int CurRound = ObjectSelf.GetInstance().LimitFightMgr.m_RoundNum;
                UltimatetrialmonsterTemplate row = (UltimatetrialmonsterTemplate)DataTemplate.GetInstance().m_UltimatetrialmonsterTable.getTableData(CurRound);
                int nLevel = template.getMonsterlevel() + row.getAdditionalLevel();
                mBlood.setHeroLevel(nLevel);
            }
            else
            {
                mBlood.setHeroLevel(template.getMonsterlevel());
            }
            mBlood.setHeadPosition(tans);
            mBlood.uid.Copy(monster.GetGuid());

            return(mBlood);
        }