Beispiel #1
0
    /// <summary>
    ///  将所有数据添加进字典中
    /// </summary>
    private void addSoldierData(int soldierId, bool isMe)
    {
        SoldiersCollocationAgent soldiers = new SoldiersCollocationAgent();

        soldiers.setData(soldierId);

        // 对应的兵种ID
        int[] soldierIdArray = soldiers.getSoldies();

        for (int i = 0; i < soldierIdArray.Length; ++i)
        {
            if (soldierIdArray[i] != 0)
            {
                SoldierDataBase soldier = new SoldierDataBase();
                soldier.Sid = soldierIdArray[i];

                setSoldierData(soldier);

                SoldiersDict.Add(i, soldier);
            }
            else // 占位用
            {
                SoldiersDict.Add(i, null);
            }
        }
    }
Beispiel #2
0
    /// <summary>
    /// 添加一个士兵——————测试用
    /// </summary>
    /// <param name="country"></param>
    /// <param name="x_"></param>
    /// <param name="y_"></param>
    public void addSoldier(SoldierDataBase data, Defaults.SoldierType soldierType, Vector3 point)
    {
        //复制预制件
        GameObject soldierBody = ResourceManager.getInstance().getGameObject(ResourceConfig.getPrefabName(soldierType));

        soldierBody.name = null;

        if (data == null)
        {
            return;
        }

        if (data.Country == Defaults.Country.Me)
        {
            soldierBody.name = "me" + sprId;
        }
        else
        {
            soldierBody.name = "enemy" + sprId;
        }
        sprId++;

        //如果取得预制件失败,返回
        if (soldierBody == null)
        {
            return;
        }

        //根据兵种实例化兵种类,绑定到预制件
        Type scriptType = ResourceConfig.getClassType(soldierType);

        soldierBody.AddComponent(scriptType);
        GeneralSoldier soldierScript = soldierBody.GetComponent(scriptType) as GeneralSoldier;

        //如果取得脚本失败,返回
        if (soldierScript == null)
        {
            return;
        }

        //设置属性
        soldierScript._data           = data;                                              //势力
        soldierScript._data.DeadDelay = 10;
        soldierScript._data.SkillMgr.setSkills(soldierScript);                             //技能
        int distance = data.Country == Defaults.Country.Me ? 14 : 26;                      //敌我距离

        soldierBody.transform.Rotate(0, data.Country == Defaults.Country.Me ? 0 : 180, 0); //设置敌我部队的朝向
        soldierBody.transform.position = point;                                            //设置坐标

        //存进士兵容器
        if (data.Country == Defaults.Country.Enemy)
        {
            _enemySoldiers.Add(soldierScript);
        }
        else
        {
            _selfSoldiers.Add(soldierScript);
        }
    }
Beispiel #3
0
    /// <summary>
    /// 设置数据
    /// </summary>
    //private void setSoldierHeroData(SoldierDataBase _heroSoldier)
    private void setSoldierData(SoldierDataBase heroSoldier)

    {
        // 相关的类型转换
        _monster = _isMe == true ? _monster : ((MonsterAgent)_monster);

        // 设置对应的数据
        _monster.setData(heroSoldier.Sid);

        // 设置英雄数据
        heroSoldier.Sid = _monster.getID();

        heroSoldier.Model = _monster.getModel();

        heroSoldier.HP = _monster.getHP();

        // TODO
        if (heroSoldier.HP <= 0)
        {
            int a = 0;
        }

        heroSoldier.RoleID = _monster.getRoleID();

        heroSoldier.RoleName = _monster.getRoleName();

        heroSoldier.PhysicalStrength = _monster.getPhysicalStrength();

        heroSoldier.PhysicalNormal = _monster.getPhysicalNormal();

        heroSoldier.SpellIntensity = _monster.getSpellIntensity();

        heroSoldier.SpellOrdinary = _monster.getSpellOrdinary();

        heroSoldier.Crit = _monster.getCrit();

        heroSoldier.CritCoefficient = _monster.getCritCoefficient();

        heroSoldier.Violence = _monster.getViolence();

        heroSoldier.ViolenceCoefficient = _monster.getViolenceCoefficient();

        heroSoldier.PhysicalDefense = _monster.getPhysicalDefense();

        heroSoldier.Physical = _monster.getPhysical();

        heroSoldier.Things = _monster.getThings();

        heroSoldier.SpellDefense = _monster.getSpellDefense();

        heroSoldier.Spell = _monster.getSpell();

        heroSoldier.SpellCoefficient = _monster.getSpellCoefficient();

        heroSoldier.Dodge = _monster.getDodge();

        heroSoldier.DodgeCoefficient = _monster.getDodgeCoefficient();

        heroSoldier.Interval = _monster.getInterval();

        heroSoldier.MoveSpeed = _monster.getSpeed();

        heroSoldier.AttckDistance = _monster.getAttackDistance();

        heroSoldier.Skills = _monster.getSkills();

        heroSoldier.InitialMP = _monster.getInitialMP();

        // 目前没啥用  从 兵种结构那里可以获取
        heroSoldier.CarryMosterNumber = _monster.getCarrayMosterNumber();   // 佣兵数量

        heroSoldier.HavaMosterID = _monster.getMercenary();                 // 如果是英雄那么他将拥有兵种ID


        if (_isMe == true) // 自己的英雄数据
        {
            heroSoldier.WorldName = _monster.getWorldName();

            heroSoldier.RoleType = _monster.getRoleType();

            heroSoldier.RoleProduct = _monster.getRoleProduct();

            heroSoldier.ProductParam = _monster.getProductParam();

            heroSoldier.HPGrowth = _monster.getHPGrowth();

            heroSoldier.PhysicalGrowth = _monster.getPhysicalGrowth();

            heroSoldier.SpellGrowth = _monster.getSpellGrowth();

            heroSoldier.DefGrowth = _monster.getDefGrowth();

            heroSoldier.SdefGrowth = _monster.getSdefGrowth();

            heroSoldier.MPGrowth = _monster.getMpGrowth();
        }
        else  // 敌方
        {
            heroSoldier.Level = ((MonsterAgent)_monster).getLevel();

            heroSoldier.DodgeIntensity = ((MonsterAgent)_monster).getDodgeIntensity();

            heroSoldier.Bonus = ((MonsterAgent)_monster).getBonus();

            heroSoldier.Combat = ((MonsterAgent)_monster).getCombat();

            heroSoldier.Drop = ((MonsterAgent)_monster).getDrop();

            heroSoldier.ViolenceIntensity = ((MonsterAgent)_monster).getViolenceIntensity();

            heroSoldier.CritIntensity = ((MonsterAgent)_monster).getCritIntensity();
        }


        heroSoldier.ATK = Formula.Formula.getNakedAttribute(heroSoldier.PhysicalStrength, _isMe == true ? heroSoldier.PhysicalGrowth : 0, 0);

        heroSoldier.SATK = Formula.Formula.getNakedAttribute(heroSoldier.SpellIntensity, _isMe == true ? heroSoldier.SpellGrowth : 0, 0);
    }