Example #1
0
    void SetBullockCarts(long id, float lvl)
    {
        MonsterData md = new MonsterData(id, (int)lvl);

        md.groupIndex = 1;
        md.lvlRate    = lvl;
        md.state      = Modestatus.NpcPlayer;
        cartCs        = BattleUtil.AddMoveComponents(cart, md.attrNode.modelNode);
        cartCs.pm.nav.obstacleAvoidanceType = UnityEngine.AI.ObstacleAvoidanceType.NoObstacleAvoidance;
        cartCs.pm.nav.avoidancePriority     = 59;
        cartCs.InitData(md);
        BullockCarts bc = UnityUtil.AddComponetIfNull <BullockCarts>(cart);

        if (bc)
        {
            bc.OnArrDes  += () => { DungeonOverHandle(null); };
            cartCs.OnHit += bc.BeAttacked;
        }
        cartCs.OnDead   += (c) => { WinCondition(false); };
        cartCs.moveSpeed = cartCs.moveInitSpeed;
        cartCs.AddHpBar();
        AddCs(cartCs);
        if (sceneType == SceneType.KV)
        {
            GameObject prompt = new GameObject("UIPrompt");
            prompt.transform.parent        = cartCs.transform;
            prompt.transform.localPosition = new Vector3(0, 1.2f, 0);
            CDTimer.GetInstance().AddCD(0.5f, (int count, long cid) => { HUDAndHPBarManager.instance.AddPrompt(prompt.transform); });
        }
        cart.tag = "Cart";
    }
Example #2
0
 void InitTowerAIAttack(CharacterState cs, float atk)
 {
     if (cs.state == Modestatus.Tower)
     {
         Tower_AI tAI = cs.GetComponent <Tower_AI>();
         tAI.baseAttack = atk;
         cs.Hp(0);
         cs.AddHpBar();
     }
 }
Example #3
0
    void InitTower(CharacterState cs, long id, UInt32 groupIndex, Modestatus state)
    {
        MonsterData towerData = new MonsterData(id, (int)towerlvl[cs]);

        towerData.groupIndex = groupIndex;
        towerData.lvlRate    = towerlvl[cs];
        towerData.state      = Modestatus.Tower;
        cs.InitData(towerData);
        cs.GetComponent <Tower_AI>().InitTowerAI();
        cs.AddHpBar();
        AddCs(cs);
    }
Example #4
0
    void CreateEnemyHero()
    {
        MonsterData md = new MonsterData(EnemyPlayer);

        //enemyhd = md;
        md.state      = Modestatus.NpcPlayer;
        md.groupIndex = 0;
        md.lvl        = (int)Enemylvl;
        md.lvlRate    = Enemylvl;
        CharacterState enemyCs = CreateBattleHero(md, enemyPlayerPos);

        if (null == enemyCs)
        {
            return;
        }
        this.enemyCs = enemyCs;
        enemyCs.AddHpBar();
        AddHeroAIBySceneType(enemyCs);
        enemyCs.OnDead += (CharacterState mCs) => OnHeroDead(mCs);
        MobaMiniMap.instance.AddMapIconByType(enemyCs);
    }
Example #5
0
    public void CreateTeam()
    {
        int index = 0;

        for (int i = 0; i < 5; i++)
        {
            index = i;// == 0 ? 0 : i + 3;
            if (null == Globe.challengeTeam[index] || Globe.challengeTeam[index].id == 0)
            {
                continue;
            }
            ArenaPlayer partner = new ArenaPlayer();
            partner.groupIndx   = 1;
            partner.playerData  = Globe.challengeTeam[index];
            partner.playerTrans = partnerPos[i];
            partner.playerIcon  = SceneUIManager.instance.arenaPanel.mIcon[i];
            npcList.Add(partner);
            damageHeroList.Add(partner);
        }

        int enemyCount = 0;

        for (int i = 0; i < 5; i++)
        {
            if (null == Globe.ArenaEnemy[i] || Globe.ArenaEnemy[i].id == 0)
            {
                continue;
            }
            enemyCount++;
            ArenaPlayer enemy = new ArenaPlayer();
            enemy.groupIndx   = 0;
            enemy.playerData  = Globe.ArenaEnemy[i];
            enemy.playerTrans = partnerPos[i + 5];
            enemy.playerIcon  = SceneUIManager.instance.arenaPanel.dIcon[i];
            npcList.Add(enemy);
            damageHeroList.Add(enemy);
        }

        List <CharacterState> csList = new List <CharacterState>();

        for (int i = 0; i < npcList.Count; i++)
        {
            if (null == npcList[i].playerData || npcList[i].playerData.id == 0)
            {
                continue;
            }

            npcList[i].playerData.state      = Modestatus.NpcPlayer;
            npcList[i].playerData.groupIndex = npcList[i].groupIndx;

            CharacterState cs = CreateBattleHero(npcList[i].playerData, npcList[i].playerTrans.gameObject);
            heroIcon.Add(cs, npcList[i].playerIcon);
            cs.pm.isAutoMode = true;
            cs.AddHpBar();
            cs.OnHit       += npcList[i].playerIcon.RefreshHPBar;
            cs.OnAttackDmg += RecordDamage;
            RecordDamage(cs, cs, 0);
            cs.OnDead += (CharacterState csm) =>
            {
                heroIcon[csm].RefreshHPBar(csm);
            };
            heroCsList.Add(cs);
            npcList[i].playerIcon.AssignedInfo(cs);
            AddHeroAIBySceneType(cs);
            cs.transform.GetComponent <BasePlayerAI>().enabled = false;
            Formula.SetAttrTo(ref cs.CharData.buffAttrs, AttrType.hp, cs.currentHp * 0.5f);
            csList.Add(cs);
            // Debug.LogError(cs.CharData.id + " max: " + cs.maxHp + " server: " + cs.CharData.serverAttrs[3] + " rate: " + cs.maxHp / cs.CharData.serverAttrs[3]);
            //if (cs.CharData.groupIndex == 0)
            //{
            //    for (int j = 0; j < cs.CharData.serverAttrs.Length; j++)
            //    {
            //        cs.CharData.serverAttrs[j] = csList[0].CharData.serverAttrs[j];
            //    }
            //}
            //else
            //{
            //    csList.Add(cs);
            //}

            //if (GameLibrary.isNetworkVersion)
            //{
            //for (int j = 0; j < cs.CharData.buff_Propers.Length; j++)
            //{
            //    float rato = cs.CharData.battleInitAttrs[j] * 0.1f;
            //    if (Globe.ArenaIsWin == 1)
            //        cs.CharData.buff_Propers[j] += cs.CharData.groupIndex == 0 ? -rato : rato;
            //    else
            //        cs.CharData.buff_Propers[j] += cs.CharData.groupIndex == 0 ? rato : -rato;
            //}
            //if (cs.CharData.groupIndex == 1 && Globe.ArenaIsWin == 1)
            //{
            //    cs.CharData.buff_Propers[3] += cs.currentHp * 1.5f;
            //}
            //if (Globe.ArenaIsWin == 1)
            //{
            //    cs.CharData.buff_Propers[3] += cs.currentHp * (cs.CharData.groupIndex == 1 ? 1.5f : 1.0f);
            //}
            //else
            //{
            //    cs.CharData.buff_Propers[3] += cs.currentHp * (cs.CharData.groupIndex == 0 ? 1.5f : 1.0f);
            //}

            //}
            cs.Hp(0);
        }
        //PreLoadCharEffects(csList);
        //for (int i = 0; i < npcList.Count; i++)
        //{
        //			Debug.LogError (npcList [i].playerData.id + "-" + npcList [i].playerData.node.name);
        //    for (int j = 0; j < npcList[i].playerData.battleInitAttrs.Length; j++)
        //    {
        //				Debug.Log((AttrType)j +"-"+npcList[i].playerData.battleInitAttrs[j]);
        //    }
        //}
    }
Example #6
0
    CharacterState CreatHero(HeroData data, GameObject parGo, HeroAttackLine atkLine)
    {
        CharacterState cs = null;

        data.useServerAttr = false;
        data.RefreshAttr();
        if (data.groupIndex == 1)
        {
            if (data.state == Modestatus.Player)
            {
                cs = CreateMainHero(data).GetComponent <CharacterState>();
            }
            else if (data.state == Modestatus.NpcPlayer)
            {
                cs = CreateBattleHero(data, parGo).GetComponent <CharacterState>();
            }
            cs.AddHpBar(true);
            cs.pm.moveAreaMask = 1 | 1 << (int)NavAreas.BlueHeroPass;
        }
        else if (data.groupIndex == 0)
        {
            cs = CreateBattleHero(data, parGo).GetComponent <CharacterState>();
            cs.CharData.groupIndex = 0;
            cs.AddHpBar(true);
            cs.gameObject.tag  = "EnemyPlayer";
            cs.pm.moveAreaMask = 1 | 1 << (int)NavAreas.RedHeroPass;
        }
        if (cs != null)
        {
            BasePlayerAI ai = AddHeroAIBySceneType(cs);
            if (cs.groupIndex == 1 && cs.CharData.memberId == 0)
            {
                ai.enabled = false;
            }
            else
            {
                ai.enabled = true;
            }
        }
        cs.OnHelp     += TowerHelp;
        cs.OnDead     += OnHeroDead;
        cs.OnDead     += ChangeMorale;
        cs.OnDamageBy += (CharacterState mcs, CharacterState attackerCs) =>
        {
            if (BattleUtil.IsHeroTarget(attackerCs))
            {
                RefreshAttackedHeroRecords(mcs.CharData, attackerCs.CharData);
            }
            else if (attackerCs.state == Modestatus.SummonHero && attackerCs.Master != null)
            {
                RefreshAttackedHeroRecords(mcs.CharData, attackerCs.Master.CharData);
            }
        };
        cs.moveSpeed = cs.moveInitSpeed = 0.75f * cs.moveInitSpeed;
        cs.InitHp(cs.maxHp);
        cs.atkLine = atkLine;

        if (MobaMiniMap.instance != null)
        {
            MobaMiniMap.instance.AddMapIconByType(cs);
        }

        return(cs);
    }